



  

<!DOCTYPE html>
<html
  lang="en"
  
  data-color-mode="auto" data-light-theme="light" data-dark-theme="dark"
  data-a11y-animated-images="system" data-a11y-link-underlines="true"
  
  >




  <head>
    <meta charset="utf-8">
  <link rel="dns-prefetch" href="https://github.githubassets.com">
  <link rel="dns-prefetch" href="https://avatars.githubusercontent.com">
  <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
  <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
  <link rel="preconnect" href="https://github.githubassets.com" crossorigin>
  <link rel="preconnect" href="https://avatars.githubusercontent.com">

<script type="importmap">{"imports":{"react":"https://github.githubassets.com/assets/react-e27d1b3e03961e68.js","react-dom":"https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js","react-dom/client":"https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js","react-is":"https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js","react-reconciler":"https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js","react/compiler-runtime":"https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js","react/jsx-dev-runtime":"https://github.githubassets.com/assets/react-jsx-dev-runtime-ea55d68667d559e5.js","react/jsx-runtime":"https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js","scheduler":"https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js"}}</script>
<meta name="react-profiling" content="0" data-turbo-transient="true" />
<meta name="react-import-map" content="react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@777f63f87cd0" data-turbo-track="reload" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-e27d1b3e03961e68.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js" />

  


  <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-99f877e9ddfc0e51.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light_high_contrast-48fdd0811afbab3c.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-79ad2ace604703b3.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark_high_contrast-24484a076f02295f.css" /><link data-color-theme="light" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light-99f877e9ddfc0e51.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-48fdd0811afbab3c.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-f4bf1142976e4bbf.css" /><link data-color-theme="light_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind_high_contrast-f661b49995ba0bd8.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-0b38d22346321c92.css" /><link data-color-theme="light_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia_high_contrast-f1c62c9e70259b9f.css" /><link data-color-theme="dark" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark-79ad2ace604703b3.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-24484a076f02295f.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-f50cacf0a86b9929.css" /><link data-color-theme="dark_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind_high_contrast-e61d4f4ca17852c2.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-39c10993d5603fac.css" /><link data-color-theme="dark_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia_high_contrast-73236c840c0c7d90.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-0de76f07cc035b10.css" /><link data-color-theme="dark_dimmed_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed_high_contrast-fd1500c8744e40d6.css" />

  <style type="text/css">
    :root {
      --tab-size-preference: 4;
    }

    pre, code {
      tab-size: var(--tab-size-preference);
    }
  </style>

    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-ed9ca172356fd545.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-1d2c7f7b52a6068b.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-54ba76e934a49d7c.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-456bd5deb85c7ecd.css" />
  <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/repository-11ee8a031c040c1a.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-2d56bdb0166c0238.css" />

  

  <script type="application/json" id="client-env">{"locale":"en","featureFlags":["actions_enable_background_steps","actions_new_hosted_runner_image_select_sizes_and_versions","activity_diff_file_tree","activity_repos_file_tree","activity_repos_overview_header","activity_repos_overview_sidebar","agent_author_search_expansion","agent_author_search_expansion_ui_pulls","alternate_user_config_repo","async_conversion_coverage_enabled","billing_billable_licenses_cost_center_bucket_fix","billing_budget_expiration","billing_cost_center_list_assigned_resources","billing_discount_threshold_notification","code_quality_enablement_banner_targeting","code_quality_remove_preview","code_view_raf_sticky_lines","codespaces_prebuild_region_target_update","coding_agent_third_party_model_ui","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_automation_repo_mcp_servers","copilot_automations_pagination","copilot_chat_auto_mode_v2","copilot_chat_clear_model_selection_for_default_change","copilot_chat_header_reorder","copilot_chat_max_upsell","copilot_chat_minimize_contextual","copilot_chat_models_browser_cache","copilot_chat_reduce_quota_checks","copilot_chat_vision_dotcom_chat_ga_gate","copilot_css_textarea_autosize","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_removal_on_marketplace","copilot_fix_failed_workflows_all_skus","copilot_hide_hovercard","copilot_immersive_embedded_draggable","copilot_immersive_embedded_header_button","copilot_immersive_file_block_transition_open","copilot_immersive_file_preview_keep_mounted","copilot_immersive_suggestion_pills","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_mc_cli_resume_any_users_task","copilot_mission_control_agent_merge_fix_ci","copilot_mission_control_agent_merge_resolve_conflicts","copilot_mission_control_agents_repository_enablement","copilot_mission_control_early_stop","copilot_mission_control_environment_list_icons","copilot_mission_control_managed_sandbox_environments","copilot_mission_control_needs_attention","copilot_mission_control_reasoning_effort","copilot_mission_control_repo_hovercards","copilot_mission_control_sandbox_client_side_clone","copilot_mission_control_sandbox_remote_bypass","copilot_mission_control_session_filters","copilot_mission_control_task_alive_updates","copilot_mission_control_task_sharing","copilot_org_policy_page_focus_mode","copilot_pr_chat_enhancements","copilot_prominent_upgrade_button","copilot_resource_panel","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_spark_handle_nil_friendly_name","copilot_swe_agent_authorization_status_ui","copilot_swe_agent_automation_resource_scoped_writes","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_issue_comment_trigger","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_pull_request_comment_trigger","copilot_swe_agent_pull_request_merged_trigger","copilot_swe_agent_pull_request_opened_trigger","copilot_swe_agent_pull_request_synchronize_trigger","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_task_scoped_alive_channel","copilot_token_based_billing","copilot_unconfigured_is_inherited","copilot_user_can_upgrade_plan_field","copilot_workbench_sunset","copilot_workbench_sunset_redirect","copilot_workbench_ubb","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","glc_code_quality_repo_settings_workflow_config","hide_github_models_ui","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","in_product_messaging_datadog_monitoring","ipm_global_transactional_message_copilot","ipm_global_transactional_message_issues","ipm_global_transactional_message_prs","ipm_global_transactional_message_repos","ipm_global_transactional_message_spaces","ipm_ubb_individual_budget_banner","issue_fields_multi_select","issue_inline_avatars","issue_pinned_views","issue_pinned_views_optimistic_updates","issue_relative_time_micro","issues_dashboard_sso_structured_errors","issues_expanded_file_types","issues_hide_closed_sub_issues","issues_lazy_load_comment_box_suggestions","issues_react_chrome_container_query_fix","labels_archiving","labels_archiving_info","landing_pages_ninetailed","lifecycle_label_name_updates","marketing_cookie_consent_banner","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_lazy_hydrate_agent_tasks","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_queue_restricted_pushers_warning","merge_status_checks_refetch_dedupe","merge_status_header_feedback","oauth_authorize_clickjacking_protection","octocaptcha_origin_optimization","primer_react_css_anchor_positioning","primer_react_merged_forwarded_refs","prs_copilot_app_open_action","prs_css_anchor_positioning","pull_request_commit_checks_dialog","pull_request_copilot_attribution_header","pull_request_overview_panel_edit_description","pull_request_persister","pull_request_stacks_feedback_dialog","pull_request_virtualization_image_estimate","pull_request_virtualization_scroll_compensation","pull_request_virtualization_scroll_intent","pulls_dashboard_sidebar_layout","quick_search_lazy_suggestions","react_blob_isolate_code_lines","react_blob_ssr_content_visibility","react_data_router_tanstack_allowed","react_query_props_with_key","react_sandbox_future_tanstack","repo_app_turbo","repo_issues_sidebar_layout","repo_pulls_dashboard_persistence","repos_contributors_limited_default_range","repository_manifest_redirect_url_encoding","review_involves_filter","rule_ignored_file_paths","rulesets_actor_list_editor","sample_network_conn_type","security_center_artifact_filters_popover","see_who_reacted","semantic_similarity_duplicate_issue_detection","session_logs_ungroup_reasoning_text","set_sha256_on_repo_creation_form","site_banner_desktop_copilot_app","site_ghca_pixel_mona","site_github_app_ga_page","site_github_app_ga_page_highlight","site_github_app_mobile_native_share","site_global_banner_dev_days_attendee","site_global_banner_learn_copilot_sdk","site_global_nav_spark_models_removed","spark_prompt_secret_scanning","spark_server_connection_status","suggest_custom_property_values_copilot","suppress_automated_browser_vitals","swp_forms_disable_octocaptcha","thread_resolution_reason","ui_service_referrer_metrics","ui_service_staleness_detection","update_issue_suggestions","user_code_paste_ux","viewscreen_sandbox","warn_inaccessible_attachments","webp_support","workbench_store_readonly","workstream_plugin_bootstrap"],"githubDomain":"https://github.com","copilotApiOverrideUrl":"https://api.githubcopilot.com","cmcApiUrl":"https://api.github.com/cmc_internal/api"}</script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/high-contrast-cookie-e3d808ee18eb9784.js"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wp-runtime-a2744ab9a1e5d100.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-foundation-74e9766bd696d26a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-runtime-eed8df9c2267c378.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fetch-utilities-5305162aa9984914.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ser-cd1b421ad0ad7ed5.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/environment-1de15cc3f00aeb4a.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/app-runtime.94e436d05b4d028c.module.css" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/catalyst-86a8f5de995615f8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/selector-observer-e88088f989b27670.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/relative-time-element-fa0968675d128a19.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/by-6b3c07383371bf58.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ja9-36f036c13c2e3a4c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/kw-866fd9513ae95106.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/r1-b075aab3204f32f9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/jz5-7c5d1669717041f8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hj-5126390ff433704d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j05-dce4d588268f0f7e.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/github-elements-59fd443e42239a5e.js" defer="defer"></script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/element-registry-1d286a5b4d72311d.js" defer="defer"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/runtime-helpers-f3f5d71440009c48.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/aria-live-76b18916d0c8ec4d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hotkey-5109c77d7ac61078.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-core-fbb00aaa3ab9abdf.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/04-9cb1f09b927a3a68.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/urv-b9498edf8699ddd8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4t-364e19c63d726e9a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/6ny-c969fbae697a356f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/yhq-3a209035a30b1a09.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/z1v-da5b33b877bfa358.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wo-09f85d22a6c8931b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/9y-81cfe57dc9040f3e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j0-41a4cf04cbd99503.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/0p-81491ed0d9d666e2.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/behaviors-6a4c95f2390a455b.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/react-core.5858534b1c27f133.module.css" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/code-menu-3ec48574398a4d1e.js" defer="defer"></script>
  
  <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/primer-react-12ebdc24dcff1ecc.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ncx-9a860680a5f230b9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j6-363f0ebf4f62f310.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/t7l-bf6f21d7e7a43c35.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fe-7576d9b281e2106a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wsr-5fd3071e5a9061ab.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/0n-ecadb2ffe6b01ba2.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/xv-51cb34754bda73a9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/n4u-6317ce1c31aed1db.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j8s-d90ce3a169b741ed.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/la-de176c4ee471f2b3.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/eag-d9eea130fa716df9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/y2-87df441f1bc5a264.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/kcz-607e36c8a3751cf0.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/x4-65dba777efd828f3.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/gzu-1a09248f686325f6.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/on-95be29ba1ef725d9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/bi0-e2f78de823e39ca9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/b1-1dbc371cef78c3c1.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/0l5-55aa9485c732f0ca.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/c2z-c92998400310b94b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/f9-038758dcbfe08dab.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/0k-b7df0a74912a42bf.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/sp-2bbb73a69162e23b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/og-93ae8b358505d372.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/b9-69d9b60a1b1fcd59.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ec-ec74cb1fa6c31a3f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/du-bbe0f39cd2abe9a0.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ql0-6accb9e40c25a6a5.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/20-0a2e46387735f1f4.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/dsj-cb1e4ddbce4f007b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wp-9f5235d335ab624b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ko6-9e80f7ac359e3c43.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/uw-8c275f7ac25b7cf6.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/bsb-4f4ac8c20da73fac.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/w5-13e3a7548bb20af9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fm-9bc913d1959fabab.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/z-69921967c33df3d9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/h0-010921512138e12f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/5p-ae5db0820116fb43.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/8vq-b2af216e992e11ef.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/g5-b9c2d4e033b4c05c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/xc-f5d51b571cd317cb.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/arw-51e8918a1b75a80f.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/code-view-6295e5801ff951fe.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.9d59d1018a52a53c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/ql0.bd9e6b542f167fd8.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/z.3094038d30e96da5.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/xc.13e027137438fd9f.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-view.79a427e7d5d9fc8a.module.css" />

  <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hu-1fc0b2a167afc025.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fbr-9cd34ba01ef26edb.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/notifications-subscriptions-menu-ed2b0ec8304bf20c.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.9d59d1018a52a53c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/notifications-subscriptions-menu.8c3da6a2bb388e29.module.css" />


  <title>simplecpp/simplecpp.cpp at master · tmpvar/simplecpp · GitHub</title>



  <meta name="route-pattern" content="/:user_id/:repository/blob/*name(/*path)" data-turbo-transient>
  <meta name="route-controller" content="blob" data-turbo-transient>
  <meta name="route-action" content="show" data-turbo-transient>
  <meta name="fetch-nonce" content="v2:58995262-3977-6eb3-be16-31b319e97dd4">

    
  <meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb">


  <meta name="request-id" content="DA3E:2D7A83:7E3B96B:78FAF91:6AABCC92" data-pjax-transient="true"/><meta name="html-safe-nonce" content="2951fc60ad9dc766fa4cf016ff816c4c388129eb70edeb99f96c2ca4182c0332" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEQTNFOjJEN0E4Mzo3RTNCOTZCOjc4RkFGOTE6NkFBQkNDOTIiLCJ2aXNpdG9yX2lkIjoiMTkwNDU0NjQyMjQ4ODU1MDU0NiIsInJlZ2lvbl9lZGdlIjoiZnJhIiwicmVnaW9uX3JlbmRlciI6ImZyYSJ9" data-pjax-transient="true"/><meta name="visitor-hmac" content="defa88930dbff9ee1d327551f09ba82eac3efd85be32fd69aae9410f1cb34014" data-pjax-transient="true"/>


    <meta name="hovercard-subject-tag" content="repository:885957845" data-turbo-transient>


  <meta name="github-keyboard-shortcuts" content="repository,source-code,file-tree,copilot" data-turbo-transient="true" />
  

  <meta name="selected-link" value="repo_source" data-turbo-transient>
  <link rel="assets" href="https://github.githubassets.com/">

    <meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I">

<meta name="octolytics-url" content="https://collector.github.com/github/collect" />





  <meta name="analytics-location" content="/&lt;user-name&gt;/&lt;repo-name&gt;/blob/show" data-turbo-transient="true" />

  




    <meta name="user-login" content="">

  

    <meta name="viewport" content="width=device-width">

    

      <meta name="description" content="C++ preprocessor. Contribute to tmpvar/simplecpp development by creating an account on GitHub.">

      <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">

    <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
    <meta property="fb:app_id" content="1401488693436528">
    <meta name="apple-itunes-app" content="app-id=1477376905, app-argument=https://github.com/tmpvar/simplecpp/blob/master/simplecpp.cpp" />

      <meta name="twitter:image" content="https://opengraph.githubassets.com/7a283f8f32f5fa535d4dfcc8a42ff0e011bb770e9d564de211015383384e1aad/tmpvar/simplecpp" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="simplecpp/simplecpp.cpp at master · tmpvar/simplecpp" /><meta name="twitter:description" content="C++ preprocessor. Contribute to tmpvar/simplecpp development by creating an account on GitHub." />
  <meta property="og:image" content="https://opengraph.githubassets.com/7a283f8f32f5fa535d4dfcc8a42ff0e011bb770e9d564de211015383384e1aad/tmpvar/simplecpp" /><meta property="og:image:alt" content="C++ preprocessor. Contribute to tmpvar/simplecpp development by creating an account on GitHub." /><meta property="og:image:width" content="1200" /><meta property="og:image:height" content="600" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="simplecpp/simplecpp.cpp at master · tmpvar/simplecpp" /><meta property="og:url" content="https://github.com/tmpvar/simplecpp/blob/master/simplecpp.cpp" /><meta property="og:description" content="C++ preprocessor. Contribute to tmpvar/simplecpp development by creating an account on GitHub." />
  




      <meta name="hostname" content="github.com">



        <meta name="expected-hostname" content="github.com">


  <meta http-equiv="x-pjax-version" content="b364eda142a55b7908e2af4eb1cc3d196e2f920eb6e77ab3e9e0c2b393e67018" data-turbo-track="reload">
  <meta http-equiv="x-pjax-csp-version" content="0c5c6e5334a905d8f9521e09eadcffba484d422e0d262e07ff922e6bc18b2ac6" data-turbo-track="reload">
  <meta http-equiv="x-pjax-css-version" content="ec4c7b86d7b57240253150b827ea48b04e08d8760dc6553d2a04f62000f3fe0c" data-turbo-track="reload">
  <meta http-equiv="x-pjax-js-version" content="ce35f620bba69502da6211ab9459eea4107bd9cf852e27219d4af0cd373f04b7" data-turbo-track="reload">

  <meta name="turbo-cache-control" content="no-preview" data-turbo-transient="">

      <meta name="turbo-cache-control" content="no-cache" data-turbo-transient>

    <meta data-hydrostats="publish">

  <meta name="go-import" content="github.com/tmpvar/simplecpp git https://github.com/tmpvar/simplecpp.git">

  <meta name="octolytics-dimension-user_id" content="46673" /><meta name="octolytics-dimension-user_login" content="tmpvar" /><meta name="octolytics-dimension-repository_id" content="885957845" /><meta name="octolytics-dimension-repository_nwo" content="tmpvar/simplecpp" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="true" /><meta name="octolytics-dimension-repository_parent_id" content="33434464" /><meta name="octolytics-dimension-repository_parent_nwo" content="cppcheck-opensource/simplecpp" /><meta name="octolytics-dimension-repository_network_root_id" content="33434464" /><meta name="octolytics-dimension-repository_network_root_nwo" content="cppcheck-opensource/simplecpp" />
  



    

    <meta name="turbo-body-classes" content="logged-out env-production page-responsive">
  <meta name="disable-turbo" content="false">


  <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">


  <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">

  <meta name="release" content="4cef363fda1fc7d23eadf6e3d0ea9d2b8bbcd17a" data-turbo-track="reload">
  <meta name="ui-target" content="full">

  <link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000">
  <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png">
  <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg" data-base-href="https://github.githubassets.com/favicons/favicon">

<meta name="theme-color" content="#1e2327">
<meta name="color-scheme" content="light dark" />


  <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">

  </head>

  <body class="logged-out env-production page-responsive" style="word-wrap: break-word;" >
    <div data-turbo-body class="logged-out env-production page-responsive" style="word-wrap: break-word;" >
      <div id="__primerPortalRoot__" style="z-index: 1000; position: absolute; width: 100%;" data-turbo-permanent></div>
      

    <div class="position-relative header-wrapper js-header-wrapper ">
      <a href="#start-of-content" data-skip-target-assigned="false" class="px-2 tmp-py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a>

      <span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full">
    <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span>
</span>      
      <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/l7j-2ddd8b435dadae28.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog-c28aec3b35773780.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.9d59d1018a52a53c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.d647b2f653c1b052.module.css" />

<react-partial
  partial-name="keyboard-shortcuts-dialog"
  data-ssr="false"
  data-attempted-ssr="false"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"docsUrl":"https://docs.github.com/get-started/accessibility/keyboard-shortcuts"}}</script>
  <div data-target="react-partial.reactRoot"></div>
</react-partial>





      

          
          

                <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/2l-f3d532039f3d01c2.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/i26-2904d36a084a3550.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fz5-23f28c0f388769c9.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/lht-26506ea833dda5be.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/p1-76a75a6081059b19.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/3d8-bbc4e3ce35fac150.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tua-c4ca62c5e0e0318e.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4s-c22d880230690e1f.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/marketing-header-d788224be8db8173.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.9d59d1018a52a53c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-brand-css.6a01c236ff527e7e.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/4s.e3d02f110161be52.module.css" />

<react-partial
  partial-name="marketing-header"
  data-ssr="true"
  data-attempted-ssr="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"color_mode":"dark","logged_in":false,"marketing_page":false,"home_path":"/","login_path":"/login?return_to=https%3A%2F%2Fgithub.com%2Ftmpvar%2Fsimplecpp%2Fblob%2Fmaster%2Fsimplecpp.cpp","signup_path":"/signup?ref_cta=Sign+up\u0026ref_loc=header+logged+out\u0026ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow\u0026source=header-repo\u0026source_repo=tmpvar%2Fsimplecpp","signup_enabled":true,"is_signup_controller":false,"show_search_and_nav":true,"hide_search":false,"private_mode_enabled":false,"should_use_dotcom_links":true,"auth_hydro_click":"{\"event_type\":\"authentication.click\",\"payload\":{\"location_in_page\":\"site header menu\",\"repository_id\":null,\"auth_type\":\"SIGN_UP\",\"originating_url\":\"https://github.com/tmpvar/simplecpp/blob/master/simplecpp.cpp\",\"user_id\":null}}","auth_hydro_click_hmac":"036c9436c00386391e652d4955b591de4b233fe47089fa185270440ed006c726","overlay":false,"fixed":false}}</script>
  <div data-target="react-partial.reactRoot"><div data-color-mode="dark" data-light-theme="light" data-dark-theme="dark"><header class="MarketingHeader-module__root__Tk7n3 HeaderMktg header-logged-out" role="banner" data-marketing-header="true" data-color-mode="dark" data-light-theme="light" data-dark-theme="dark" data-is-top="true"><h2 class="MarketingHeader-module__visuallyHidden__sqKsl">Navigation Menu</h2><button type="button" class="MarketingHeader-module__backdrop__sw4RU" aria-label="Close navigation menu"></button><div class="MarketingHeader-module__bar__mBSyE"><div class="MarketingHeader-module__topRow__yeury"><div class="MarketingHeader-module__toggleSlot__hDxbh"><button type="button" class="HeaderMenuToggle-module__toggle__i8EiC" aria-label="Toggle navigation" aria-expanded="false"><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span></button></div><a href="/" aria-label="Homepage" class="HeaderLogo-module__logo__UFyHI" data-analytics-event="{&quot;action&quot;:&quot;homepage&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;logo&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;homepage_link_logo_header&quot;}"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github" viewBox="0 0 24 24" width="32" height="32" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path></svg></a><div class="AuthCTAs-module__mobileActions__NNzeV"><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq" href="/login?return_to=https%3A%2F%2Fgithub.com%2Ftmpvar%2Fsimplecpp%2Fblob%2Fmaster%2Fsimplecpp.cpp" data-analytics-event="{&quot;action&quot;:&quot;sign_in&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_in_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/tmpvar/simplecpp/blob/master/simplecpp.cpp&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="036c9436c00386391e652d4955b591de4b233fe47089fa185270440ed006c726"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH">Sign in</span></span></a><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderAppearanceSettings-module__trigger__hUheK" type="button" aria-haspopup="dialog" aria-labelledby="_R_3dd_"><span class="Primer_Brand__Button-module__Button__leading-visual___jjtTe" data-testid="Button-leading-visual"><svg data-component="Octicon" focusable="false" aria-hidden="true" class="octicon octicon-sliders Primer_Brand__Button-module__Button__icon-visual____qybb" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path></svg></span><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"></span></span></button><div class="Primer_Brand__Tooltip-module__Tooltip___0Eipx" data-direction="s" aria-hidden="true" id="_R_3dd_">Appearance settings</div></div></div><div class="MarketingHeader-module__menu__GIy3y"><div class="MarketingHeader-module__menuWrapper__owstH"><nav class="MarketingNavigation-module__nav__W0KYY" aria-label="Global"><ul class="MarketingNavigation-module__list__tFbMb"><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_nd_">Platform<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5knd_">AI CODE CREATION</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5knd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/copilot" data-analytics-event="{&quot;action&quot;:&quot;github_copilot&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_copilot_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copilot NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>GitHub Copilot</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Write better code with AI</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/ai/github-app" data-analytics-event="{&quot;action&quot;:&quot;github_copilot_app&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_copilot_app_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M6.766 11.328c-2.063-.25-3.516-1.734-3.516-3.656 0-.781.281-1.625.75-2.188-.203-.515-.172-1.609.063-2.062.625-.078 1.468.25 1.968.703.594-.187 1.219-.281 1.985-.281.765 0 1.39.094 1.953.265.484-.437 1.344-.765 1.969-.687.218.422.25 1.515.046 2.047.5.593.766 1.39.766 2.203 0 1.922-1.453 3.375-3.547 3.64.531.344.89 1.094.89 1.954v1.625c0 .468.391.734.86.547C13.781 14.359 16 11.53 16 8.03 16 3.61 12.406 0 7.984 0 3.563 0 0 3.61 0 8.031a7.88 7.88 0 0 0 5.172 7.422c.422.156.828-.125.828-.547v-1.25c-.219.094-.5.156-.75.156-1.031 0-1.64-.562-2.078-1.609-.172-.422-.36-.672-.719-.719-.187-.015-.25-.093-.25-.187 0-.188.313-.328.625-.328.453 0 .844.281 1.25.86.313.452.64.655 1.031.655s.641-.14 1-.5c.266-.265.47-.5.657-.656"></path></svg>GitHub Copilot app</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Direct agents from issue to merge</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/mcp" data-analytics-event="{&quot;action&quot;:&quot;mcp_registry&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;mcp_registry_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mcp NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M5.52 1.12a3.578 3.578 0 0 1 6.078 2.98 3.578 3.578 0 0 1 2.982 6.08l-3.292 3.293a.252.252 0 0 0 0 .354l.843.843a.749.749 0 1 1-1.06 1.06l-.844-.843a1.75 1.75 0 0 1 0-2.474L13.52 9.12a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0L7.731 9.03A.75.75 0 0 1 6.67 7.97l2.85-2.85a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0l-4.799 4.8A.75.75 0 0 1 .72 5.92Z"></path><path d="M7.52 3.12a.749.749 0 1 1 1.06 1.06L5.731 7.03A2.079 2.079 0 0 0 8.67 9.97l2.85-2.85a.749.749 0 1 1 1.06 1.06l-2.849 2.85A3.578 3.578 0 0 1 4.67 5.97Z"></path></svg>MCP Registry</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Integrate external tools</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9knd_">DEVELOPER WORKFLOWS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9knd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/actions" data-analytics-event="{&quot;action&quot;:&quot;actions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;actions_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-workflow NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h3.5C6.216 0 7 .784 7 1.75v3.5A1.75 1.75 0 0 1 5.25 7H4v4a1 1 0 0 0 1 1h4v-1.25C9 9.784 9.784 9 10.75 9h3.5c.966 0 1.75.784 1.75 1.75v3.5A1.75 1.75 0 0 1 14.25 16h-3.5A1.75 1.75 0 0 1 9 14.25v-.75H5A2.5 2.5 0 0 1 2.5 11V7h-.75A1.75 1.75 0 0 1 0 5.25Zm1.75-.25a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Zm9 9a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Z"></path></svg>Actions</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Automate any workflow</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/codespaces" data-analytics-event="{&quot;action&quot;:&quot;codespaces&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;codespaces_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-codespaces NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z"></path><path d="M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path></svg>Codespaces</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Instant dev environments</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/issues" data-analytics-event="{&quot;action&quot;:&quot;issues&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;issues_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-issue-opened NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path></svg>Issues</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Plan and track work</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/code-review" data-analytics-event="{&quot;action&quot;:&quot;code_review&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_review_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg>Code Review</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Manage code changes</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/code-quality" data-analytics-event="{&quot;action&quot;:&quot;code_quality&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_quality_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-codescan-checkmark NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.28 6.28a.75.75 0 1 0-1.06-1.06L6.25 8.19l-.97-.97a.75.75 0 0 0-1.06 1.06l1.5 1.5a.75.75 0 0 0 1.06 0l3.5-3.5Z"></path><path d="M7.5 15a7.5 7.5 0 1 1 5.807-2.754l2.473 2.474a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2.474-2.473A7.472 7.472 0 0 1 7.5 15Zm0-13.5a6 6 0 1 0 4.094 10.386.748.748 0 0 1 .293-.292 6.002 6.002 0 0 0 1.117-6.486A6.002 6.002 0 0 0 7.5 1.5Z"></path></svg>Code Quality</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enforce quality at merge</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dknd_">APPLICATION SECURITY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dknd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security" data-analytics-event="{&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_advanced_security_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield-check NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>GitHub Advanced Security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Find and fix vulnerabilities</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security/code-security" data-analytics-event="{&quot;action&quot;:&quot;code_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_security_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code-square NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>Code security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Secure your code as you build</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security/secret-protection" data-analytics-event="{&quot;action&quot;:&quot;secret_protection&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;secret_protection_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-lock NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M4 4a4 4 0 0 1 8 0v2h.25c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 12.25 15h-8.5A1.75 1.75 0 0 1 2 13.25v-5.5C2 6.784 2.784 6 3.75 6H4Zm8.25 3.5h-8.5a.25.25 0 0 0-.25.25v5.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25ZM10.5 6V4a2.5 2.5 0 1 0-5 0v2Z"></path></svg>Secret protection</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Stop leaks before they start</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ NavGroup-module__hasSeparator__FnMrN"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_hknd_">EXPLORE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_hknd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/why-github" data-analytics-event="{&quot;action&quot;:&quot;why_github&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;why_github_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Why GitHub</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://docs.github.com" data-analytics-event="{&quot;action&quot;:&quot;documentation&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;documentation_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Documentation</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://github.blog" data-analytics-event="{&quot;action&quot;:&quot;blog&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;blog_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Blog</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://github.blog/changelog" data-analytics-event="{&quot;action&quot;:&quot;changelog&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;changelog_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Changelog</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/marketplace" data-analytics-event="{&quot;action&quot;:&quot;marketplace&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;marketplace_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Marketplace</span></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/features" data-analytics-event="{&quot;action&quot;:&quot;view_all_features&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_features_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all features</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_17d_">Solutions<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_17d_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5l7d_">BY COMPANY SIZE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5l7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/enterprise" data-analytics-event="{&quot;action&quot;:&quot;enterprises&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;enterprises_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Enterprises</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/team" data-analytics-event="{&quot;action&quot;:&quot;small_and_medium_teams&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;small_and_medium_teams_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Small and medium teams</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/enterprise/startups" data-analytics-event="{&quot;action&quot;:&quot;startups&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;startups_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Startups</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/nonprofits" data-analytics-event="{&quot;action&quot;:&quot;nonprofits&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;nonprofits_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Nonprofits</span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9l7d_">BY USE CASE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9l7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/app-modernization" data-analytics-event="{&quot;action&quot;:&quot;app_modernization&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;app_modernization_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">App Modernization</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/devsecops" data-analytics-event="{&quot;action&quot;:&quot;devsecops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devsecops_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevSecOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/devops" data-analytics-event="{&quot;action&quot;:&quot;devops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devops_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/ci-cd" data-analytics-event="{&quot;action&quot;:&quot;ci/cd&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ci/cd_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">CI/CD</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions/use-case" data-analytics-event="{&quot;action&quot;:&quot;view_all_use_cases&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_use_cases_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all use cases</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dl7d_">BY INDUSTRY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dl7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/healthcare" data-analytics-event="{&quot;action&quot;:&quot;healthcare&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;healthcare_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Healthcare</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/financial-services" data-analytics-event="{&quot;action&quot;:&quot;financial_services&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;financial_services_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Financial services</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/manufacturing" data-analytics-event="{&quot;action&quot;:&quot;manufacturing&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;manufacturing_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Manufacturing</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/government" data-analytics-event="{&quot;action&quot;:&quot;government&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;government_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Government</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions/industry" data-analytics-event="{&quot;action&quot;:&quot;view_all_industries&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_industries_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all industries</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions" data-analytics-event="{&quot;action&quot;:&quot;view_all_solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_solutions_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all solutions</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_1nd_">Resources<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_1nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5lnd_">EXPLORE BY TOPIC</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5lnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=ai" data-analytics-event="{&quot;action&quot;:&quot;ai&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ai_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">AI</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=software-development" data-analytics-event="{&quot;action&quot;:&quot;software_development&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;software_development_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Software Development</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=devops" data-analytics-event="{&quot;action&quot;:&quot;devops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devops_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=security" data-analytics-event="{&quot;action&quot;:&quot;security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;security_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Security</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/resources/articles" data-analytics-event="{&quot;action&quot;:&quot;view_all_topics&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_topics_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all topics</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9lnd_">EXPLORE BY TYPE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9lnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/customer-stories" data-analytics-event="{&quot;action&quot;:&quot;customer_stories&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;customer_stories_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Customer stories</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/events" data-analytics-event="{&quot;action&quot;:&quot;events__webinars&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;events__webinars_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Events &amp; webinars</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/whitepapers" data-analytics-event="{&quot;action&quot;:&quot;ebooks__reports&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ebooks__reports_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Ebooks &amp; reports</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/executive-insights" data-analytics-event="{&quot;action&quot;:&quot;business_insights&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;business_insights_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Business insights</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://skills.github.com" data-analytics-event="{&quot;action&quot;:&quot;github_skills&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_skills_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Skills</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dlnd_">SUPPORT &amp; SERVICES</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dlnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://docs.github.com" data-analytics-event="{&quot;action&quot;:&quot;documentation&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;documentation_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Documentation</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://support.github.com" data-analytics-event="{&quot;action&quot;:&quot;customer_support&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;customer_support_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Customer support</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/orgs/community/discussions" data-analytics-event="{&quot;action&quot;:&quot;community_forum&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;community_forum_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Community forum</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/trust-center" data-analytics-event="{&quot;action&quot;:&quot;trust_center&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;trust_center_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Trust center</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/partners" data-analytics-event="{&quot;action&quot;:&quot;partners&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;partners_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Partners</span></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/resources" data-analytics-event="{&quot;action&quot;:&quot;view_all_resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_resources_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all resources</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_27d_">Open Source<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_27d_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5m7d_">COMMUNITY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5m7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/open-source/sponsors" data-analytics-event="{&quot;action&quot;:&quot;github_sponsors&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_sponsors_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-sponsor-tiers NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.586 1C12.268 1 13.5 2.37 13.5 4.25c0 1.745-.996 3.359-2.622 4.831-.166.15-.336.297-.509.438l1.116 5.584a.75.75 0 0 1-.991.852l-2.409-.876a.25.25 0 0 0-.17 0l-2.409.876a.75.75 0 0 1-.991-.852L5.63 9.519a13.78 13.78 0 0 1-.51-.438C3.497 7.609 2.5 5.995 2.5 4.25 2.5 2.37 3.732 1 5.414 1c.963 0 1.843.403 2.474 1.073L8 2.198l.112-.125a3.385 3.385 0 0 1 2.283-1.068L10.586 1Zm-3.621 9.495-.718 3.594 1.155-.42a1.75 1.75 0 0 1 1.028-.051l.168.051 1.154.42-.718-3.592c-.199.13-.37.235-.505.314l-.169.097a.75.75 0 0 1-.72 0 9.54 9.54 0 0 1-.515-.308l-.16-.105ZM10.586 2.5c-.863 0-1.611.58-1.866 1.459-.209.721-1.231.721-1.44 0C7.025 3.08 6.277 2.5 5.414 2.5 4.598 2.5 4 3.165 4 4.25c0 1.23.786 2.504 2.128 3.719.49.443 1.018.846 1.546 1.198l.325.21.076-.047.251-.163a13.341 13.341 0 0 0 1.546-1.198C11.214 6.754 12 5.479 12 4.25c0-1.085-.598-1.75-1.414-1.75Z"></path></svg>GitHub Sponsors</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Fund open source developers</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9m7d_">PROGRAMS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9m7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://securitylab.github.com" data-analytics-event="{&quot;action&quot;:&quot;security_lab&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;security_lab_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Security Lab</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://maintainers.github.com" data-analytics-event="{&quot;action&quot;:&quot;maintainer_community&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;maintainer_community_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Maintainer Community</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://stars.github.com" data-analytics-event="{&quot;action&quot;:&quot;github_stars&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_stars_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Stars</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://archiveprogram.github.com" data-analytics-event="{&quot;action&quot;:&quot;archive_program&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;archive_program_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Archive Program</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dm7d_">REPOSITORIES</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dm7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/topics" data-analytics-event="{&quot;action&quot;:&quot;topics&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;topics_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Topics</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/trending" data-analytics-event="{&quot;action&quot;:&quot;trending&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;trending_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Trending</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/collections" data-analytics-event="{&quot;action&quot;:&quot;collections&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;collections_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Collections</span></a></li></ul></div></li></ul></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_2nd_">Enterprise<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_2nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5mnd_">ENTERPRISE SOLUTIONS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5mnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/enterprise" data-analytics-event="{&quot;action&quot;:&quot;enterprise_platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;enterprise_platform_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-stack NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.122.392a1.75 1.75 0 0 1 1.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 0 1-1.756 0L2.119 5.456a1.251 1.251 0 0 1 0-2.162ZM8.125 1.69a.248.248 0 0 0-.25 0l-4.63 2.685 4.63 2.685a.248.248 0 0 0 .25 0l4.63-2.685ZM1.601 7.789a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0L1.874 8.814A.75.75 0 0 1 1.6 7.789Zm0 3.5a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0l-5.248-3.044a.75.75 0 0 1-.273-1.025Z"></path></svg>Enterprise platform</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">AI-powered developer platform</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9mnd_">AVAILABLE ADD-ONS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9mnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security" data-analytics-event="{&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_advanced_security_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield-check NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>GitHub Advanced Security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade security features</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/copilot/copilot-business" data-analytics-event="{&quot;action&quot;:&quot;copilot_for_business&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;copilot_for_business_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copilot NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>Copilot for Business</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade AI features</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/enterprise/premium-support" data-analytics-event="{&quot;action&quot;:&quot;premium_support&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;premium_support_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-comment-discussion NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path></svg>Premium Support</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade 24/7 support</span></span></a></li></ul></div></li></ul></div></div></li><li><a href="https://github.com/pricing" data-analytics-event="{&quot;action&quot;:&quot;pricing&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;pricing&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;pricing_link_pricing_navbar&quot;}" class="MarketingNavigation-module__navLink__hUomM">Pricing</a></li></ul></nav><div class="MarketingHeader-module__ctaContainer__tBmPz"><div class="HeaderSearch-module__searchSlot__oVOUS"><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderSearch-module__trigger__zsF9q" type="button" aria-haspopup="dialog" aria-expanded="false" aria-label="Search or jump to, type / to search" data-analytics-event="{&quot;action&quot;:&quot;searchbar&quot;,&quot;tag&quot;:&quot;input&quot;,&quot;context&quot;:&quot;global&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;searchbar_input_global_navbar&quot;}"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"><span class="HeaderSearch-module__content__kMpxU"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-search HeaderSearch-module__icon__wcrHX" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg><span class="HeaderSearch-module__label__d1iWG">Search</span><kbd class="HeaderSearch-module__kbd__HNG0o" aria-hidden="true">/</kbd></span></span></span></button><div class="d-none"></div></div><div class="AuthCTAs-module__signInWrap__q2P60"><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq AuthCTAs-module__desktopActionGap__UZuXT AuthCTAs-module__hiddenBelowLg__BfKBw" href="/login?return_to=https%3A%2F%2Fgithub.com%2Ftmpvar%2Fsimplecpp%2Fblob%2Fmaster%2Fsimplecpp.cpp" data-analytics-event="{&quot;action&quot;:&quot;sign_in&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_in_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/tmpvar/simplecpp/blob/master/simplecpp.cpp&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="036c9436c00386391e652d4955b591de4b233fe47089fa185270440ed006c726"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH">Sign in</span></span></a></div><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--secondary___gHnw_ Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq" href="/signup?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow&amp;source=header-repo&amp;source_repo=tmpvar%2Fsimplecpp" data-analytics-event="{&quot;action&quot;:&quot;sign_up&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_up_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/tmpvar/simplecpp/blob/master/simplecpp.cpp&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="036c9436c00386391e652d4955b591de4b233fe47089fa185270440ed006c726"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-secondary___eJ0_a">Sign up</span></span></a><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderAppearanceSettings-module__trigger__hUheK" type="button" aria-haspopup="dialog" aria-labelledby="_R_fbd_"><span class="Primer_Brand__Button-module__Button__leading-visual___jjtTe" data-testid="Button-leading-visual"><svg data-component="Octicon" focusable="false" aria-hidden="true" class="octicon octicon-sliders Primer_Brand__Button-module__Button__icon-visual____qybb" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path></svg></span><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"></span></span></button><div class="Primer_Brand__Tooltip-module__Tooltip___0Eipx" data-direction="s" aria-hidden="true" id="_R_fbd_">Appearance settings</div></div></div></div></div><div class="MarketingHeader-module__bottomBorder__uZT38" aria-hidden="true"></div></header></div></div>
</react-partial>



      <div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full">
  
        <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
        <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
        <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
        <span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>

    <button id="icon-button-747e2a8d-9c8d-4322-baac-79eaa63dbcdf" aria-labelledby="tooltip-e33a44f9-ecb9-4a77-a47c-dc42deb1e611" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close">  <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
</button><tool-tip id="tooltip-e33a44f9-ecb9-4a77-a47c-dc42deb1e611" for="icon-button-747e2a8d-9c8d-4322-baac-79eaa63dbcdf" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip>


  
</div>
    </div>

  <div id="start-of-content" class="show-on-focus"></div>








    <div id="js-flash-container" class="flash-container" data-turbo-replace>





  <template class="js-flash-template">
    
<div class="flash flash-full   {{ className }}">
  <div >
    <button autofocus class="flash-close js-flash-close" type="button" aria-label="Dismiss this message">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
    </button>
    <div aria-atomic="true" role="alert" class="js-flash-alert">
      
      <div>{{ message }}</div>

    </div>
  </div>
</div>
  </template>
</div>


    






  <div
    class="application-main "
    data-commit-hovercards-enabled
    data-discussion-hovercards-enabled
    data-issue-and-pr-hovercards-enabled
    data-project-hovercards-enabled
  >
        <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
    <main id="js-repo-pjax-container" >
      
      








  

    <div id="repository-container-header"  class="tmp-pt-3 hide-full-screen" style="background-color: var(--page-header-bgColor, var(--color-page-header-bg));" data-turbo-replace>

        <div class="d-flex flex-nowrap flex-justify-end tmp-mb-3  tmp-px-3 tmp-px-lg-5" style="gap: 1rem;">

          <div class="flex-auto min-width-0 width-fit">
              
  <div class=" d-flex flex-wrap flex-items-center wb-break-word f3 text-normal">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked color-fg-muted mr-2 tmp-mr-2">
    <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path>
</svg>
    
    <span class="author flex-self-stretch" itemprop="author">
      <a class="url fn" rel="author" data-hovercard-type="user" data-hovercard-url="/users/tmpvar/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/tmpvar">
        tmpvar
</a>    </span>
    <span class="mx-1 flex-self-stretch color-fg-muted">/</span>
    <strong itemprop="name" class="mr-2 flex-self-stretch">
      <a data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" href="/tmpvar/simplecpp">simplecpp</a>
    </strong>

    <span></span><span class="Label Label--secondary v-align-middle mr-1">Public</span>
  </div>
    <span class="text-small lh-condensed-ultra no-wrap mt-1" data-repository-hovercards-enabled>
      forked from <a data-hovercard-type="repository" data-hovercard-url="/cppcheck-opensource/simplecpp/hovercard" class="Link--inTextBlock" href="/cppcheck-opensource/simplecpp">cppcheck-opensource/simplecpp</a>
    </span>


          </div>

          <div id="repository-details-container" class="flex-shrink-0" data-turbo-replace style="max-width: 70%;">
              <ul class="pagehead-actions flex-shrink-0 d-none d-md-inline" style="padding: 2px 0;">
    
      

  <li>
            <a href="/login?return_to=%2Ftmpvar%2Fsimplecpp" rel="nofollow" id="repository-details-watch-button" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;notification subscription menu watch&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/tmpvar/simplecpp/blob/master/simplecpp.cpp&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2897c645594ae3a1649b83a875d25300bc908a3f3014aa07d715316f0591e98c" aria-label="You must be signed in to change notification settings" data-view-component="true" class="btn-sm btn">    <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bell mr-2 tmp-mr-2">
    <path d="M8 16a2 2 0 0 0 1.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 0 0 8 16ZM3 5a5 5 0 0 1 10 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.519 1.519 0 0 1 13.482 13H2.518a1.516 1.516 0 0 1-1.263-2.36l1.703-2.554A.255.255 0 0 0 3 7.947Zm5-3.5A3.5 3.5 0 0 0 4.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.017.017 0 0 0-.003.01l.001.006c0 .002.002.004.004.006l.006.004.007.001h10.964l.007-.001.006-.004.004-.006.001-.007a.017.017 0 0 0-.003-.01l-1.703-2.554a1.745 1.745 0 0 1-.294-.97V5A3.5 3.5 0 0 0 8 1.5Z"></path>
</svg>Notifications
</a>    <tool-tip id="tooltip-568e0a35-bc46-4dd2-87b8-e810cc12ba91" for="repository-details-watch-button" popover="manual" data-direction="s" data-type="description" data-view-component="true" class="sr-only position-absolute">You must be signed in to change notification settings</tool-tip>

  </li>

  <li>
          <a icon="repo-forked" id="fork-button" href="/login?return_to=%2Ftmpvar%2Fsimplecpp" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;repo details fork button&quot;,&quot;repository_id&quot;:885957845,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/tmpvar/simplecpp/blob/master/simplecpp.cpp&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="41dbbeac546ec60cf53ba2a99e57d89ead53d64f77bf3a54a0546d7a80eee583" data-view-component="true" class="btn-sm btn">    <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked mr-2 tmp-mr-2">
    <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path>
</svg>Fork
    <span id="repo-network-counter" data-pjax-replace="true" data-turbo-replace="true" title="0" data-view-component="true" class="Counter">0</span>
</a>
  </li>

  <li>
        <div data-view-component="true" class="BtnGroup d-flex">
        <a href="/login?return_to=%2Ftmpvar%2Fsimplecpp" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:885957845,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/tmpvar/simplecpp/blob/master/simplecpp.cpp&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="3d297fbbd2f4e9a36ba82244224ff1fc08f7f6430b764568f5c65a9698c19e73" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn">    <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2 tmp-mr-2">
    <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path>
</svg><span data-view-component="true" class="d-inline">
          Star
</span>          <span id="repo-stars-counter-star" aria-label="0 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="0" data-view-component="true" class="Counter js-social-count">0</span>
</a></div>
  </li>

</ul>

          </div>
        </div>

          <div id="responsive-meta-container" data-turbo-replace>
</div>


            <nav data-pjax="#js-repo-pjax-container" aria-label="Repository" data-view-component="true" class="js-repo-nav js-sidenav-container-pjax js-responsive-underlinenav overflow-hidden UnderlineNav px-3 tmp-px-3 px-md-4 tmp-px-md-4 px-lg-5 tmp-px-lg-5">

  <ul data-view-component="true" class="UnderlineNav-body list-style-none">
      <li data-view-component="true" class="d-inline-flex">
  <a id="code-tab" href="/tmpvar/simplecpp" data-tab-item="i0code-tab" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages repo_deployments repo_attestations /tmpvar/simplecpp" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g c" data-command-id="repositories:go-to-code" data-react-nav="code-view" data-react-nav-anchor="code-view-repo-link" data-analytics-event="{&quot;category&quot;:&quot;Underline navbar&quot;,&quot;action&quot;:&quot;Click tab&quot;,&quot;label&quot;:&quot;Code&quot;,&quot;target&quot;:&quot;UNDERLINE_NAV.TAB&quot;}" aria-current="page" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item selected">
    
              <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code UnderlineNav-octicon d-none d-sm-inline">
    <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path>
</svg>
        <span data-content="Code">Code</span>
          <span id="code-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span>


    
</a></li>
      <li data-view-component="true" class="d-inline-flex">
  <a id="pull-requests-tab" href="/tmpvar/simplecpp/pulls" data-tab-item="i1pull-requests-tab" data-selected-links="repo_pulls checks /tmpvar/simplecpp/pulls" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g p" data-command-id="repositories:go-to-pull-requests" data-analytics-event="{&quot;category&quot;:&quot;Underline navbar&quot;,&quot;action&quot;:&quot;Click tab&quot;,&quot;label&quot;:&quot;Pull requests&quot;,&quot;target&quot;:&quot;UNDERLINE_NAV.TAB&quot;}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
    
              <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request UnderlineNav-octicon d-none d-sm-inline">
    <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path>
</svg>
        <span data-content="Pull requests">Pull requests</span>
          <span id="pull-requests-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="0" hidden="hidden" data-view-component="true" class="Counter">0</span>


    
</a></li>
      <li data-view-component="true" class="d-inline-flex">
  <a id="actions-tab" href="/tmpvar/simplecpp/actions" data-tab-item="i2actions-tab" data-selected-links="repo_actions /tmpvar/simplecpp/actions" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g a" data-command-id="repositories:go-to-actions" data-react-nav="actions-workflows" data-analytics-event="{&quot;category&quot;:&quot;Underline navbar&quot;,&quot;action&quot;:&quot;Click tab&quot;,&quot;label&quot;:&quot;Actions&quot;,&quot;target&quot;:&quot;UNDERLINE_NAV.TAB&quot;}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
    
              <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play UnderlineNav-octicon d-none d-sm-inline">
    <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path>
</svg>
        <span data-content="Actions">Actions</span>
          <span id="actions-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span>


    
</a></li>
      <li data-view-component="true" class="d-inline-flex">
  <a id="projects-tab" href="/tmpvar/simplecpp/projects" data-tab-item="i3projects-tab" data-selected-links="repo_projects new_repo_project repo_project /tmpvar/simplecpp/projects" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g b" data-command-id="repositories:go-to-projects" data-analytics-event="{&quot;category&quot;:&quot;Underline navbar&quot;,&quot;action&quot;:&quot;Click tab&quot;,&quot;label&quot;:&quot;Projects&quot;,&quot;target&quot;:&quot;UNDERLINE_NAV.TAB&quot;}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
    
              <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table UnderlineNav-octicon d-none d-sm-inline">
    <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25ZM6.5 6.5v8h7.75a.25.25 0 0 0 .25-.25V6.5Zm8-1.5V1.75a.25.25 0 0 0-.25-.25H6.5V5Zm-13 1.5v7.75c0 .138.112.25.25.25H5v-8ZM5 5V1.5H1.75a.25.25 0 0 0-.25.25V5Z"></path>
</svg>
        <span data-content="Projects">Projects</span>
          <span id="projects-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span>


    
</a></li>
      <li data-view-component="true" class="d-inline-flex">
  <a id="security-and-quality-tab" href="/tmpvar/simplecpp/security" data-tab-item="i4security-and-quality-tab" data-selected-links="security overview alerts policy token_scanning code_scanning /tmpvar/simplecpp/security" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g s" data-command-id="repositories:go-to-security" data-analytics-event="{&quot;category&quot;:&quot;Underline navbar&quot;,&quot;action&quot;:&quot;Click tab&quot;,&quot;label&quot;:&quot;Security and quality&quot;,&quot;target&quot;:&quot;UNDERLINE_NAV.TAB&quot;}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
    
              <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield UnderlineNav-octicon d-none d-sm-inline">
    <path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
        <span data-content="Security and quality">Security and quality</span>
          <span id="security-and-quality-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="0" hidden="hidden" data-view-component="true" class="Counter">0</span>


    
</a></li>
      <li data-view-component="true" class="d-inline-flex">
  <a id="insights-tab" href="/tmpvar/simplecpp/pulse" data-tab-item="i5insights-tab" data-selected-links="repo_graphs repo_contributors dependency_graph dependabot_updates pulse people community /tmpvar/simplecpp/pulse" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-command-id="repositories:go-to-insights" data-analytics-event="{&quot;category&quot;:&quot;Underline navbar&quot;,&quot;action&quot;:&quot;Click tab&quot;,&quot;label&quot;:&quot;Insights&quot;,&quot;target&quot;:&quot;UNDERLINE_NAV.TAB&quot;}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
    
              <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-graph UnderlineNav-octicon d-none d-sm-inline">
    <path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path>
</svg>
        <span data-content="Insights">Insights</span>
          <span id="insights-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span>


    
</a></li>
</ul>
    <div style="visibility:hidden;" data-view-component="true" class="UnderlineNav-actions js-responsive-underlinenav-overflow position-absolute pr-3 tmp-pr-3 pr-md-4 tmp-pr-md-4 pr-lg-5 tmp-pr-lg-5 right-0">      <action-menu data-select-variant="none" data-view-component="true">
  <focus-group direction="vertical" mnemonics retain>
    <button id="action-menu-a2348407-3a46-422c-bc7f-dc5101808ed2-button" popovertarget="action-menu-a2348407-3a46-422c-bc7f-dc5101808ed2-overlay" aria-controls="action-menu-a2348407-3a46-422c-bc7f-dc5101808ed2-list" aria-haspopup="true" aria-labelledby="tooltip-9ccbfbdb-31fe-4ef0-8642-b8bdeb071018" type="button" data-view-component="true" class="Button Button--iconOnly Button--secondary Button--medium UnderlineNav-item">  <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-kebab-horizontal Button-visual">
    <path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path>
</svg>
</button><tool-tip id="tooltip-9ccbfbdb-31fe-4ef0-8642-b8bdeb071018" for="action-menu-a2348407-3a46-422c-bc7f-dc5101808ed2-button" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Additional navigation options</tool-tip>


<anchored-position data-target="action-menu.overlay" id="action-menu-a2348407-3a46-422c-bc7f-dc5101808ed2-overlay" anchor="action-menu-a2348407-3a46-422c-bc7f-dc5101808ed2-button" align="start" side="outside-bottom" anchor-offset="normal" popover="auto" data-view-component="true">
  <div data-view-component="true" class="Overlay Overlay--size-auto">
    
      <div data-view-component="true" class="Overlay-body Overlay-body--paddingNone">          <action-list>
  <div data-view-component="true">
    <ul aria-labelledby="action-menu-a2348407-3a46-422c-bc7f-dc5101808ed2-button" id="action-menu-a2348407-3a46-422c-bc7f-dc5101808ed2-list" role="menu" data-view-component="true" class="ActionListWrap--inset ActionListWrap">
        <li hidden="hidden" data-menu-item="i0code-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
    
    
    <a tabindex="-1" id="item-cea7496d-4735-4dbc-9cc6-29c5dea50ea1" href="/tmpvar/simplecpp" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
        <span class="ActionListItem-visual ActionListItem-visual--leading">
          <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code">
    <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path>
</svg>
        </span>
      
        <span data-view-component="true" class="ActionListItem-label">
          Code
</span>      
</a>
  
</li>
        <li hidden="hidden" data-menu-item="i1pull-requests-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
    
    
    <a tabindex="-1" id="item-c1e84c4f-ca56-49dd-abe6-117eb2b90808" href="/tmpvar/simplecpp/pulls" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
        <span class="ActionListItem-visual ActionListItem-visual--leading">
          <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request">
    <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path>
</svg>
        </span>
      
        <span data-view-component="true" class="ActionListItem-label">
          Pull requests
</span>      
</a>
  
</li>
        <li hidden="hidden" data-menu-item="i2actions-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
    
    
    <a tabindex="-1" id="item-a80590c5-5335-4ab5-adf7-c9f418cc8b5f" href="/tmpvar/simplecpp/actions" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
        <span class="ActionListItem-visual ActionListItem-visual--leading">
          <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play">
    <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path>
</svg>
        </span>
      
        <span data-view-component="true" class="ActionListItem-label">
          Actions
</span>      
</a>
  
</li>
        <li hidden="hidden" data-menu-item="i3projects-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
    
    
    <a tabindex="-1" id="item-7c28304c-63e7-48cd-9808-99bf5f2e5112" href="/tmpvar/simplecpp/projects" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
        <span class="ActionListItem-visual ActionListItem-visual--leading">
          <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table">
    <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25ZM6.5 6.5v8h7.75a.25.25 0 0 0 .25-.25V6.5Zm8-1.5V1.75a.25.25 0 0 0-.25-.25H6.5V5Zm-13 1.5v7.75c0 .138.112.25.25.25H5v-8ZM5 5V1.5H1.75a.25.25 0 0 0-.25.25V5Z"></path>
</svg>
        </span>
      
        <span data-view-component="true" class="ActionListItem-label">
          Projects
</span>      
</a>
  
</li>
        <li hidden="hidden" data-menu-item="i4security-and-quality-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
    
    
    <a tabindex="-1" id="item-7dcaaed4-13dc-4931-810d-1e7d85d587ce" href="/tmpvar/simplecpp/security" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
        <span class="ActionListItem-visual ActionListItem-visual--leading">
          <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield">
    <path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
        </span>
      
        <span data-view-component="true" class="ActionListItem-label">
          Security and quality
</span>      
</a>
  
</li>
        <li hidden="hidden" data-menu-item="i5insights-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
    
    
    <a tabindex="-1" id="item-00531e5a-f6ee-433f-86ce-2a1da2be9ddb" href="/tmpvar/simplecpp/pulse" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
        <span class="ActionListItem-visual ActionListItem-visual--leading">
          <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-graph">
    <path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path>
</svg>
        </span>
      
        <span data-view-component="true" class="ActionListItem-label">
          Insights
</span>      
</a>
  
</li>
</ul>    
</div></action-list>


</div>
      
</div></anchored-position>  </focus-group>
</action-menu></div>
</nav>

    </div>
  



<turbo-frame id="repo-content-turbo-frame" target="_top" data-turbo-action="advance" class="">
    <div id="repo-content-pjax-container" class="repository-content " >
    



    
      
    








<react-app
  app-name="code-view"
  initial-path="/tmpvar/simplecpp/blob/master/simplecpp.cpp"
  style="display: block; min-height: calc(100vh - 64px);"
  data-attempted-ssr="true"
  data-ssr="true"
  data-lazy="false"
  data-alternate="false"
  data-data-router-enabled="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-app.embeddedData">{"payload":{"codeViewBlobRoute":{"csv":null,"csvError":null,"headerInfo":{"toc":null},"issueTemplate":null,"discussionTemplate":null,"richText":null,"richTextTruncated":false,"renderedFileInfo":null,"symbols":{"timed_out":true,"not_analyzed":false,"symbols":[{"name":"isHex","fully_qualified_name":"isHex","kind":"function","ident_start":1101,"ident_end":1106,"extent_start":1089,"extent_end":1209,"ident_utf16":{"start":{"line_number":59,"utf16_col":12},"end":{"line_number":59,"utf16_col":17}},"extent_utf16":{"start":{"line_number":59,"utf16_col":0},"end":{"line_number":62,"utf16_col":1}}},{"name":"isOct","fully_qualified_name":"isOct","kind":"function","ident_start":1223,"ident_end":1228,"extent_start":1211,"extent_end":1325,"ident_utf16":{"start":{"line_number":64,"utf16_col":12},"end":{"line_number":64,"utf16_col":17}},"extent_utf16":{"start":{"line_number":64,"utf16_col":0},"end":{"line_number":67,"utf16_col":1}}},{"name":"isStringLiteral_","fully_qualified_name":"isStringLiteral_","kind":"function","ident_start":1489,"ident_end":1505,"extent_start":1477,"extent_end":1595,"ident_utf16":{"start":{"line_number":70,"utf16_col":12},"end":{"line_number":70,"utf16_col":28}},"extent_utf16":{"start":{"line_number":70,"utf16_col":0},"end":{"line_number":73,"utf16_col":1}}},{"name":"isCharLiteral_","fully_qualified_name":"isCharLiteral_","kind":"function","ident_start":1759,"ident_end":1773,"extent_start":1747,"extent_end":2030,"ident_utf16":{"start":{"line_number":76,"utf16_col":12},"end":{"line_number":76,"utf16_col":26}},"extent_utf16":{"start":{"line_number":76,"utf16_col":0},"end":{"line_number":81,"utf16_col":1}}},{"name":"toString","fully_qualified_name":"toString","kind":"function","ident_start":2875,"ident_end":2883,"extent_start":2856,"extent_end":3022,"ident_utf16":{"start":{"line_number":104,"utf16_col":37},"end":{"line_number":104,"utf16_col":45}},"extent_utf16":{"start":{"line_number":104,"utf16_col":18},"end":{"line_number":110,"utf16_col":1}}},{"name":"stringToLL","fully_qualified_name":"stringToLL","kind":"function","ident_start":3041,"ident_end":3051,"extent_start":3024,"extent_end":3346,"ident_utf16":{"start":{"line_number":112,"utf16_col":17},"end":{"line_number":112,"utf16_col":27}},"extent_utf16":{"start":{"line_number":112,"utf16_col":0},"end":{"line_number":124,"utf16_col":1}}},{"name":"stringToULL","fully_qualified_name":"stringToULL","kind":"function","ident_start":3374,"ident_end":3385,"extent_start":3348,"extent_end":3689,"ident_utf16":{"start":{"line_number":126,"utf16_col":26},"end":{"line_number":126,"utf16_col":37}},"extent_utf16":{"start":{"line_number":126,"utf16_col":0},"end":{"line_number":138,"utf16_col":1}}},{"name":"endsWith","fully_qualified_name":"endsWith","kind":"function","ident_start":3703,"ident_end":3711,"extent_start":3691,"extent_end":3842,"ident_utf16":{"start":{"line_number":140,"utf16_col":12},"end":{"line_number":140,"utf16_col":20}},"extent_utf16":{"start":{"line_number":140,"utf16_col":0},"end":{"line_number":143,"utf16_col":1}}},{"name":"sameline","fully_qualified_name":"sameline","kind":"function","ident_start":3856,"ident_end":3864,"extent_start":3844,"extent_end":3996,"ident_utf16":{"start":{"line_number":145,"utf16_col":12},"end":{"line_number":145,"utf16_col":20}},"extent_utf16":{"start":{"line_number":145,"utf16_col":0},"end":{"line_number":148,"utf16_col":1}}},{"name":"isAlternativeBinaryOp","fully_qualified_name":"isAlternativeBinaryOp","kind":"function","ident_start":4010,"ident_end":4031,"extent_start":3998,"extent_end":4367,"ident_utf16":{"start":{"line_number":150,"utf16_col":12},"end":{"line_number":150,"utf16_col":33}},"extent_utf16":{"start":{"line_number":150,"utf16_col":0},"end":{"line_number":158,"utf16_col":1}}},{"name":"isAlternativeUnaryOp","fully_qualified_name":"isAlternativeUnaryOp","kind":"function","ident_start":4381,"ident_end":4401,"extent_start":4369,"extent_end":4634,"ident_utf16":{"start":{"line_number":160,"utf16_col":12},"end":{"line_number":160,"utf16_col":32}},"extent_utf16":{"start":{"line_number":160,"utf16_col":0},"end":{"line_number":165,"utf16_col":1}}},{"name":"replaceAll","fully_qualified_name":"replaceAll","kind":"function","ident_start":4655,"ident_end":4665,"extent_start":4636,"extent_end":4886,"ident_utf16":{"start":{"line_number":167,"utf16_col":19},"end":{"line_number":167,"utf16_col":29}},"extent_utf16":{"start":{"line_number":167,"utf16_col":0},"end":{"line_number":172,"utf16_col":1}}},{"name":"get","fully_qualified_name":"get","kind":"method","ident_start":6543,"ident_end":6546,"extent_start":6531,"extent_end":6553,"ident_utf16":{"start":{"line_number":239,"utf16_col":16},"end":{"line_number":239,"utf16_col":19}},"extent_utf16":{"start":{"line_number":239,"utf16_col":4},"end":{"line_number":239,"utf16_col":26}}},{"name":"peek","fully_qualified_name":"peek","kind":"method","ident_start":6570,"ident_end":6574,"extent_start":6558,"extent_end":6581,"ident_utf16":{"start":{"line_number":240,"utf16_col":16},"end":{"line_number":240,"utf16_col":20}},"extent_utf16":{"start":{"line_number":240,"utf16_col":4},"end":{"line_number":240,"utf16_col":27}}},{"name":"unget","fully_qualified_name":"unget","kind":"method","ident_start":6599,"ident_end":6604,"extent_start":6586,"extent_end":6611,"ident_utf16":{"start":{"line_number":241,"utf16_col":17},"end":{"line_number":241,"utf16_col":22}},"extent_utf16":{"start":{"line_number":241,"utf16_col":4},"end":{"line_number":241,"utf16_col":29}}},{"name":"good","fully_qualified_name":"good","kind":"method","ident_start":6629,"ident_end":6633,"extent_start":6616,"extent_end":6640,"ident_utf16":{"start":{"line_number":242,"utf16_col":17},"end":{"line_number":242,"utf16_col":21}},"extent_utf16":{"start":{"line_number":242,"utf16_col":4},"end":{"line_number":242,"utf16_col":28}}},{"name":"readChar","fully_qualified_name":"readChar","kind":"function","ident_start":6660,"ident_end":6668,"extent_start":6646,"extent_end":7448,"ident_utf16":{"start":{"line_number":244,"utf16_col":18},"end":{"line_number":244,"utf16_col":26}},"extent_utf16":{"start":{"line_number":244,"utf16_col":4},"end":{"line_number":271,"utf16_col":5}}},{"name":"peekChar","fully_qualified_name":"peekChar","kind":"function","ident_start":7468,"ident_end":7476,"extent_start":7454,"extent_end":8078,"ident_utf16":{"start":{"line_number":273,"utf16_col":18},"end":{"line_number":273,"utf16_col":26}},"extent_utf16":{"start":{"line_number":273,"utf16_col":4},"end":{"line_number":292,"utf16_col":5}}},{"name":"ungetChar","fully_qualified_name":"ungetChar","kind":"function","ident_start":8089,"ident_end":8098,"extent_start":8084,"extent_end":8171,"ident_utf16":{"start":{"line_number":294,"utf16_col":9},"end":{"line_number":294,"utf16_col":18}},"extent_utf16":{"start":{"line_number":294,"utf16_col":4},"end":{"line_number":299,"utf16_col":5}}},{"name":"init","fully_qualified_name":"init","kind":"function","ident_start":8193,"ident_end":8197,"extent_start":8188,"extent_end":8376,"ident_utf16":{"start":{"line_number":302,"utf16_col":9},"end":{"line_number":302,"utf16_col":13}},"extent_utf16":{"start":{"line_number":302,"utf16_col":4},"end":{"line_number":307,"utf16_col":5}}},{"name":"makeUtf16Char","fully_qualified_name":"makeUtf16Char","kind":"function","ident_start":8402,"ident_end":8415,"extent_start":8391,"extent_end":8546,"ident_utf16":{"start":{"line_number":310,"utf16_col":15},"end":{"line_number":310,"utf16_col":28}},"extent_utf16":{"start":{"line_number":310,"utf16_col":4},"end":{"line_number":313,"utf16_col":5}}},{"name":"getAndSkipBOM","fully_qualified_name":"getAndSkipBOM","kind":"function","ident_start":8567,"ident_end":8580,"extent_start":8552,"extent_end":9315,"ident_utf16":{"start":{"line_number":315,"utf16_col":19},"end":{"line_number":315,"utf16_col":32}},"extent_utf16":{"start":{"line_number":315,"utf16_col":4},"end":{"line_number":344,"utf16_col":5}}},{"name":"StdIStream","fully_qualified_name":"StdIStream","kind":"class","ident_start":9380,"ident_end":9390,"extent_start":9374,"extent_end":9971,"ident_utf16":{"start":{"line_number":351,"utf16_col":6},"end":{"line_number":351,"utf16_col":16}},"extent_utf16":{"start":{"line_number":351,"utf16_col":0},"end":{"line_number":376,"utf16_col":1}}},{"name":"StdIStream","fully_qualified_name":"StdIStream::StdIStream","kind":"function","ident_start":9559,"ident_end":9569,"extent_start":9550,"extent_end":9667,"ident_utf16":{"start":{"line_number":354,"utf16_col":13},"end":{"line_number":354,"utf16_col":23}},"extent_utf16":{"start":{"line_number":354,"utf16_col":4},"end":{"line_number":359,"utf16_col":5}}},{"name":"StdCharBufStream","fully_qualified_name":"StdCharBufStream","kind":"class","ident_start":9980,"ident_end":9996,"extent_start":9974,"extent_end":10824,"ident_utf16":{"start":{"line_number":378,"utf16_col":6},"end":{"line_number":378,"utf16_col":22}},"extent_utf16":{"start":{"line_number":378,"utf16_col":0},"end":{"line_number":412,"utf16_col":1}}},{"name":"StdCharBufStream","fully_qualified_name":"StdCharBufStream::StdCharBufStream","kind":"function","ident_start":10156,"ident_end":10172,"extent_start":10156,"extent_end":10325,"ident_utf16":{"start":{"line_number":381,"utf16_col":4},"end":{"line_number":381,"utf16_col":20}},"extent_utf16":{"start":{"line_number":381,"utf16_col":4},"end":{"line_number":388,"utf16_col":5}}},{"name":"FileStream","fully_qualified_name":"FileStream","kind":"class","ident_start":10833,"ident_end":10843,"extent_start":10827,"extent_end":11383,"ident_utf16":{"start":{"line_number":414,"utf16_col":6},"end":{"line_number":414,"utf16_col":16}},"extent_utf16":{"start":{"line_number":414,"utf16_col":0},"end":{"line_number":427,"utf16_col":5}}},{"name":"FileStream","fully_qualified_name":"FileStream::FileStream","kind":"method","ident_start":11012,"ident_end":11022,"extent_start":11003,"extent_end":11377,"ident_utf16":{"start":{"line_number":417,"utf16_col":13},"end":{"line_number":417,"utf16_col":23}},"extent_utf16":{"start":{"line_number":417,"utf16_col":4},"end":{"line_number":426,"utf16_col":15}}},{"name":"lastCh","fully_qualified_name":"FileStream::lastCh","kind":"method","ident_start":11141,"ident_end":11147,"extent_start":11003,"extent_end":11377,"ident_utf16":{"start":{"line_number":419,"utf16_col":10},"end":{"line_number":419,"utf16_col":16}},"extent_utf16":{"start":{"line_number":417,"utf16_col":4},"end":{"line_number":426,"utf16_col":15}}},{"name":"lastStatus","fully_qualified_name":"FileStream::lastStatus","kind":"method","ident_start":11161,"ident_end":11171,"extent_start":11003,"extent_end":11377,"ident_utf16":{"start":{"line_number":420,"utf16_col":10},"end":{"line_number":420,"utf16_col":20}},"extent_utf16":{"start":{"line_number":417,"utf16_col":4},"end":{"line_number":426,"utf16_col":15}}},{"name":"isNameChar","fully_qualified_name":"isNameChar","kind":"function","ident_start":16077,"ident_end":16087,"extent_start":16065,"extent_end":16164,"ident_utf16":{"start":{"line_number":604,"utf16_col":12},"end":{"line_number":604,"utf16_col":22}},"extent_utf16":{"start":{"line_number":604,"utf16_col":0},"end":{"line_number":607,"utf16_col":1}}},{"name":"escapeString","fully_qualified_name":"escapeString","kind":"function","ident_start":16185,"ident_end":16197,"extent_start":16166,"extent_end":16500,"ident_utf16":{"start":{"line_number":609,"utf16_col":19},"end":{"line_number":609,"utf16_col":31}},"extent_utf16":{"start":{"line_number":609,"utf16_col":0},"end":{"line_number":621,"utf16_col":1}}},{"name":"portabilityBackslash","fully_qualified_name":"portabilityBackslash","kind":"function","ident_start":16514,"ident_end":16534,"extent_start":16502,"extent_end":16910,"ident_utf16":{"start":{"line_number":623,"utf16_col":12},"end":{"line_number":623,"utf16_col":32}},"extent_utf16":{"start":{"line_number":623,"utf16_col":0},"end":{"line_number":632,"utf16_col":1}}},{"name":"isStringLiteralPrefix","fully_qualified_name":"isStringLiteralPrefix","kind":"function","ident_start":16924,"ident_end":16945,"extent_start":16912,"extent_end":17125,"ident_utf16":{"start":{"line_number":634,"utf16_col":12},"end":{"line_number":634,"utf16_col":33}},"extent_utf16":{"start":{"line_number":634,"utf16_col":0},"end":{"line_number":638,"utf16_col":1}}},{"name":"isFloatSuffix","fully_qualified_name":"isFloatSuffix","kind":"function","ident_start":29043,"ident_end":29056,"extent_start":29031,"extent_end":29233,"ident_utf16":{"start":{"line_number":964,"utf16_col":12},"end":{"line_number":964,"utf16_col":25}},"extent_utf16":{"start":{"line_number":964,"utf16_col":0},"end":{"line_number":970,"utf16_col":1}}},{"name":"Macro","fully_qualified_name":"Macro","kind":"class","ident_start":46937,"ident_end":46942,"extent_start":46931,"extent_end":46942,"ident_utf16":{"start":{"line_number":1469,"utf16_col":10},"end":{"line_number":1469,"utf16_col":15}},"extent_utf16":{"start":{"line_number":1469,"utf16_col":4},"end":{"line_number":1469,"utf16_col":15}}},{"name":"MacroMap","fully_qualified_name":"MacroMap","kind":"type","ident_start":47077,"ident_end":47085,"extent_start":47041,"extent_end":47086,"ident_utf16":{"start":{"line_number":1473,"utf16_col":40},"end":{"line_number":1473,"utf16_col":48}},"extent_utf16":{"start":{"line_number":1473,"utf16_col":4},"end":{"line_number":1473,"utf16_col":49}}},{"name":"Macro","fully_qualified_name":"Macro","kind":"class","ident_start":47105,"ident_end":47110,"extent_start":47099,"extent_end":87368,"ident_utf16":{"start":{"line_number":1476,"utf16_col":10},"end":{"line_number":1476,"utf16_col":15}},"extent_utf16":{"start":{"line_number":1476,"utf16_col":4},"end":{"line_number":2307,"utf16_col":5}}},{"name":"Macro","fully_qualified_name":"Macro::Macro","kind":"function","ident_start":47142,"ident_end":47147,"extent_start":47133,"extent_end":47316,"ident_utf16":{"start":{"line_number":1478,"utf16_col":17},"end":{"line_number":1478,"utf16_col":22}},"extent_utf16":{"start":{"line_number":1478,"utf16_col":8},"end":{"line_number":1478,"utf16_col":191}}},{"name":"Macro","fully_qualified_name":"Macro::Macro","kind":"function","ident_start":47326,"ident_end":47331,"extent_start":47326,"extent_end":48119,"ident_utf16":{"start":{"line_number":1480,"utf16_col":8},"end":{"line_number":1480,"utf16_col":13}},"extent_utf16":{"start":{"line_number":1480,"utf16_col":8},"end":{"line_number":1494,"utf16_col":9}}},{"name":"Macro","fully_qualified_name":"Macro::Macro","kind":"function","ident_start":48129,"ident_end":48134,"extent_start":48129,"extent_end":48665,"ident_utf16":{"start":{"line_number":1496,"utf16_col":8},"end":{"line_number":1496,"utf16_col":13}},"extent_utf16":{"start":{"line_number":1496,"utf16_col":8},"end":{"line_number":1502,"utf16_col":9}}},{"name":"Macro","fully_qualified_name":"Macro::Macro","kind":"function","ident_start":48675,"ident_end":48680,"extent_start":48675,"extent_end":48859,"ident_utf16":{"start":{"line_number":1504,"utf16_col":8},"end":{"line_number":1504,"utf16_col":13}},"extent_utf16":{"start":{"line_number":1504,"utf16_col":8},"end":{"line_number":1506,"utf16_col":9}}},{"name":"valueDefinedInCode","fully_qualified_name":"Macro::valueDefinedInCode","kind":"function","ident_start":49416,"ident_end":49434,"extent_start":49411,"extent_end":49494,"ident_utf16":{"start":{"line_number":1523,"utf16_col":13},"end":{"line_number":1523,"utf16_col":31}},"extent_utf16":{"start":{"line_number":1523,"utf16_col":8},"end":{"line_number":1525,"utf16_col":9}}},{"name":"functionLike","fully_qualified_name":"Macro::functionLike","kind":"function","ident_start":54491,"ident_end":54503,"extent_start":54486,"extent_end":54779,"ident_utf16":{"start":{"line_number":1638,"utf16_col":13},"end":{"line_number":1638,"utf16_col":25}},"extent_utf16":{"start":{"line_number":1638,"utf16_col":8},"end":{"line_number":1643,"utf16_col":9}}},{"name":"Error","fully_qualified_name":"Macro::Error","kind":"class","ident_start":54833,"ident_end":54838,"extent_start":54826,"extent_end":55012,"ident_utf16":{"start":{"line_number":1646,"utf16_col":15},"end":{"line_number":1646,"utf16_col":20}},"extent_utf16":{"start":{"line_number":1646,"utf16_col":8},"end":{"line_number":1650,"utf16_col":9}}},{"name":"Error","fully_qualified_name":"Macro::Error::Error","kind":"function","ident_start":54853,"ident_end":54858,"extent_start":54853,"extent_end":54929,"ident_utf16":{"start":{"line_number":1647,"utf16_col":12},"end":{"line_number":1647,"utf16_col":17}},"extent_utf16":{"start":{"line_number":1647,"utf16_col":12},"end":{"line_number":1647,"utf16_col":88}}},{"name":"wrongNumberOfParameters","fully_qualified_name":"Macro::wrongNumberOfParameters","kind":"class","ident_start":55122,"ident_end":55145,"extent_start":55115,"extent_end":55338,"ident_utf16":{"start":{"line_number":1653,"utf16_col":15},"end":{"line_number":1653,"utf16_col":38}},"extent_utf16":{"start":{"line_number":1653,"utf16_col":8},"end":{"line_number":1655,"utf16_col":9}}},{"name":"wrongNumberOfParameters","fully_qualified_name":"Macro::wrongNumberOfParameters::wrongNumberOfParameters","kind":"function","ident_start":55175,"ident_end":55198,"extent_start":55175,"extent_end":55328,"ident_utf16":{"start":{"line_number":1654,"utf16_col":12},"end":{"line_number":1654,"utf16_col":35}},"extent_utf16":{"start":{"line_number":1654,"utf16_col":12},"end":{"line_number":1654,"utf16_col":165}}},{"name":"invalidHashHash","fully_qualified_name":"Macro::invalidHashHash","kind":"class","ident_start":55424,"ident_end":55439,"extent_start":55417,"extent_end":57051,"ident_utf16":{"start":{"line_number":1658,"utf16_col":15},"end":{"line_number":1658,"utf16_col":30}},"extent_utf16":{"start":{"line_number":1658,"utf16_col":8},"end":{"line_number":1681,"utf16_col":9}}},{"name":"format","fully_qualified_name":"Macro::invalidHashHash::format","kind":"function","ident_start":55495,"ident_end":55501,"extent_start":55469,"extent_end":55667,"ident_utf16":{"start":{"line_number":1659,"utf16_col":38},"end":{"line_number":1659,"utf16_col":44}},"extent_utf16":{"start":{"line_number":1659,"utf16_col":12},"end":{"line_number":1661,"utf16_col":13}}},{"name":"invalidHashHash","fully_qualified_name":"Macro::invalidHashHash::invalidHashHash","kind":"function","ident_start":55681,"ident_end":55696,"extent_start":55681,"extent_end":55836,"ident_utf16":{"start":{"line_number":1663,"utf16_col":12},"end":{"line_number":1663,"utf16_col":27}},"extent_utf16":{"start":{"line_number":1663,"utf16_col":12},"end":{"line_number":1664,"utf16_col":60}}},{"name":"unexpectedToken","fully_qualified_name":"Macro::invalidHashHash::unexpectedToken","kind":"function","ident_start":55880,"ident_end":55895,"extent_start":55850,"extent_end":56080,"ident_utf16":{"start":{"line_number":1666,"utf16_col":42},"end":{"line_number":1666,"utf16_col":57}},"extent_utf16":{"start":{"line_number":1666,"utf16_col":12},"end":{"line_number":1668,"utf16_col":13}}},{"name":"cannotCombine","fully_qualified_name":"Macro::invalidHashHash::cannotCombine","kind":"function","ident_start":56124,"ident_end":56137,"extent_start":56094,"extent_end":56389,"ident_utf16":{"start":{"line_number":1670,"utf16_col":42},"end":{"line_number":1670,"utf16_col":55}},"extent_utf16":{"start":{"line_number":1670,"utf16_col":12},"end":{"line_number":1672,"utf16_col":13}}},{"name":"unexpectedNewline","fully_qualified_name":"Macro::invalidHashHash::unexpectedNewline","kind":"function","ident_start":56433,"ident_end":56450,"extent_start":56403,"extent_end":56595,"ident_utf16":{"start":{"line_number":1674,"utf16_col":42},"end":{"line_number":1674,"utf16_col":59}},"extent_utf16":{"start":{"line_number":1674,"utf16_col":12},"end":{"line_number":1676,"utf16_col":13}}},{"name":"universalCharacterUB","fully_qualified_name":"Macro::invalidHashHash::universalCharacterUB","kind":"function","ident_start":56639,"ident_end":56659,"extent_start":56609,"extent_end":57041,"ident_utf16":{"start":{"line_number":1678,"utf16_col":42},"end":{"line_number":1678,"utf16_col":62}},"extent_utf16":{"start":{"line_number":1678,"utf16_col":12},"end":{"line_number":1680,"utf16_col":13}}},{"name":"parseDefine","fully_qualified_name":"Macro::parseDefine","kind":"function","ident_start":57546,"ident_end":57557,"extent_start":57541,"extent_end":59224,"ident_utf16":{"start":{"line_number":1693,"utf16_col":13},"end":{"line_number":1693,"utf16_col":24}},"extent_utf16":{"start":{"line_number":1693,"utf16_col":8},"end":{"line_number":1736,"utf16_col":9}}},{"name":"getArgNum","fully_qualified_name":"Macro::getArgNum","kind":"function","ident_start":59247,"ident_end":59256,"extent_start":59234,"extent_end":59503,"ident_utf16":{"start":{"line_number":1738,"utf16_col":21},"end":{"line_number":1738,"utf16_col":30}},"extent_utf16":{"start":{"line_number":1738,"utf16_col":8},"end":{"line_number":1746,"utf16_col":9}}},{"name":"getMacroParameters","fully_qualified_name":"Macro::getMacroParameters","kind":"function","ident_start":59540,"ident_end":59558,"extent_start":59513,"extent_end":60549,"ident_utf16":{"start":{"line_number":1748,"utf16_col":35},"end":{"line_number":1748,"utf16_col":53}},"extent_utf16":{"start":{"line_number":1748,"utf16_col":8},"end":{"line_number":1768,"utf16_col":9}}},{"name":"expandArg","fully_qualified_name":"Macro::expandArg","kind":"function","ident_start":76697,"ident_end":76706,"extent_start":76692,"extent_end":77349,"ident_utf16":{"start":{"line_number":2093,"utf16_col":13},"end":{"line_number":2093,"utf16_col":22}},"extent_utf16":{"start":{"line_number":2093,"utf16_col":8},"end":{"line_number":2109,"utf16_col":9}}},{"name":"expandArg","fully_qualified_name":"Macro::expandArg","kind":"function","ident_start":77364,"ident_end":77373,"extent_start":77359,"extent_end":78907,"ident_utf16":{"start":{"line_number":2111,"utf16_col":13},"end":{"line_number":2111,"utf16_col":22}},"extent_utf16":{"start":{"line_number":2111,"utf16_col":8},"end":{"line_number":2133,"utf16_col":9}}},{"name":"isReplaced","fully_qualified_name":"Macro::isReplaced","kind":"function","ident_start":86293,"ident_end":86303,"extent_start":86281,"extent_end":86619,"ident_utf16":{"start":{"line_number":2272,"utf16_col":20},"end":{"line_number":2272,"utf16_col":30}},"extent_utf16":{"start":{"line_number":2272,"utf16_col":8},"end":{"line_number":2279,"utf16_col":9}}},{"name":"startsWith","fully_qualified_name":"startsWith","kind":"function","ident_start":87423,"ident_end":87433,"extent_start":87418,"extent_end":87568,"ident_utf16":{"start":{"line_number":2313,"utf16_col":9},"end":{"line_number":2313,"utf16_col":19}},"extent_utf16":{"start":{"line_number":2313,"utf16_col":4},"end":{"line_number":2316,"utf16_col":5}}},{"name":"convertCygwinToWindowsPath","fully_qualified_name":"convertCygwinToWindowsPath","kind":"function","ident_start":87586,"ident_end":87612,"extent_start":87574,"extent_end":88555,"ident_utf16":{"start":{"line_number":2318,"utf16_col":16},"end":{"line_number":2318,"utf16_col":42}},"extent_utf16":{"start":{"line_number":2318,"utf16_col":4},"end":{"line_number":2346,"utf16_col":5}}},{"name":"MyMutex","fully_qualified_name":"MyMutex","kind":"class","ident_start":88712,"ident_end":88719,"extent_start":88706,"extent_end":89005,"ident_utf16":{"start":{"line_number":2357,"utf16_col":6},"end":{"line_number":2357,"utf16_col":13}},"extent_utf16":{"start":{"line_number":2357,"utf16_col":0},"end":{"line_number":2372,"utf16_col":1}}},{"name":"MyMutex","fully_qualified_name":"MyMutex::MyMutex","kind":"function","ident_start":88734,"ident_end":88741,"extent_start":88734,"extent_end":88806,"ident_utf16":{"start":{"line_number":2359,"utf16_col":4},"end":{"line_number":2359,"utf16_col":11}},"extent_utf16":{"start":{"line_number":2359,"utf16_col":4},"end":{"line_number":2361,"utf16_col":5}}},{"name":"MyLock","fully_qualified_name":"MyLock","kind":"class","ident_start":89035,"ident_end":89041,"extent_start":89029,"extent_end":89315,"ident_utf16":{"start":{"line_number":2375,"utf16_col":6},"end":{"line_number":2375,"utf16_col":12}},"extent_utf16":{"start":{"line_number":2375,"utf16_col":0},"end":{"line_number":2391,"utf16_col":1}}},{"name":"MyLock","fully_qualified_name":"MyLock::MyLock","kind":"function","ident_start":89065,"ident_end":89071,"extent_start":89056,"extent_end":89152,"ident_utf16":{"start":{"line_number":2377,"utf16_col":13},"end":{"line_number":2377,"utf16_col":19}},"extent_utf16":{"start":{"line_number":2377,"utf16_col":4},"end":{"line_number":2380,"utf16_col":5}}},{"name":"RealFileNameMap","fully_qualified_name":"RealFileNameMap","kind":"class","ident_start":89331,"ident_end":89346,"extent_start":89325,"extent_end":89965,"ident_utf16":{"start":{"line_number":2394,"utf16_col":6},"end":{"line_number":2394,"utf16_col":21}},"extent_utf16":{"start":{"line_number":2394,"utf16_col":0},"end":{"line_number":2417,"utf16_col":1}}},{"name":"RealFileNameMap","fully_qualified_name":"RealFileNameMap::RealFileNameMap","kind":"function","ident_start":89361,"ident_end":89376,"extent_start":89361,"extent_end":89381,"ident_utf16":{"start":{"line_number":2396,"utf16_col":4},"end":{"line_number":2396,"utf16_col":19}},"extent_utf16":{"start":{"line_number":2396,"utf16_col":4},"end":{"line_number":2396,"utf16_col":24}}},{"name":"getCacheEntry","fully_qualified_name":"RealFileNameMap::getCacheEntry","kind":"function","ident_start":89392,"ident_end":89405,"extent_start":89387,"extent_end":89720,"ident_utf16":{"start":{"line_number":2398,"utf16_col":9},"end":{"line_number":2398,"utf16_col":22}},"extent_utf16":{"start":{"line_number":2398,"utf16_col":4},"end":{"line_number":2407,"utf16_col":5}}},{"name":"addToCache","fully_qualified_name":"RealFileNameMap::addToCache","kind":"function","ident_start":89731,"ident_end":89741,"extent_start":89726,"extent_end":89882,"ident_utf16":{"start":{"line_number":2409,"utf16_col":9},"end":{"line_number":2409,"utf16_col":19}},"extent_utf16":{"start":{"line_number":2409,"utf16_col":4},"end":{"line_number":2412,"utf16_col":5}}},{"name":"realFileName","fully_qualified_name":"realFileName","kind":"function","ident_start":90021,"ident_end":90033,"extent_start":90009,"extent_end":91291,"ident_utf16":{"start":{"line_number":2421,"utf16_col":12},"end":{"line_number":2421,"utf16_col":24}},"extent_utf16":{"start":{"line_number":2421,"utf16_col":0},"end":{"line_number":2458,"utf16_col":1}}},{"name":"realFilename","fully_qualified_name":"realFilename","kind":"function","ident_start":91406,"ident_end":91418,"extent_start":91387,"extent_end":92723,"ident_utf16":{"start":{"line_number":2463,"utf16_col":19},"end":{"line_number":2463,"utf16_col":31}},"extent_utf16":{"start":{"line_number":2463,"utf16_col":0},"end":{"line_number":2513,"utf16_col":1}}},{"name":"isAbsolutePath","fully_qualified_name":"isAbsolutePath","kind":"function","ident_start":92737,"ident_end":92751,"extent_start":92725,"extent_end":92996,"ident_utf16":{"start":{"line_number":2515,"utf16_col":12},"end":{"line_number":2515,"utf16_col":26}},"extent_utf16":{"start":{"line_number":2515,"utf16_col":0},"end":{"line_number":2520,"utf16_col":1}}},{"name":"isAbsolutePath","fully_qualified_name":"isAbsolutePath","kind":"function","ident_start":93043,"ident_end":93057,"extent_start":93031,"extent_end":93135,"ident_utf16":{"start":{"line_number":2524,"utf16_col":12},"end":{"line_number":2524,"utf16_col":26}},"extent_utf16":{"start":{"line_number":2524,"utf16_col":0},"end":{"line_number":2527,"utf16_col":1}}},{"name":"simplifyPath","fully_qualified_name":"simplifyPath","kind":"function","ident_start":93247,"ident_end":93259,"extent_start":93235,"extent_end":95477,"ident_utf16":{"start":{"line_number":2534,"utf16_col":16},"end":{"line_number":2534,"utf16_col":28}},"extent_utf16":{"start":{"line_number":2534,"utf16_col":4},"end":{"line_number":2603,"utf16_col":5}}},{"name":"simplifySizeof","fully_qualified_name":"simplifySizeof","kind":"function","ident_start":95522,"ident_end":95536,"extent_start":95510,"extent_end":97107,"ident_utf16":{"start":{"line_number":2607,"utf16_col":12},"end":{"line_number":2607,"utf16_col":26}},"extent_utf16":{"start":{"line_number":2607,"utf16_col":0},"end":{"line_number":2651,"utf16_col":1}}},{"name":"isCpp17OrLater","fully_qualified_name":"isCpp17OrLater","kind":"function","ident_start":97157,"ident_end":97171,"extent_start":97145,"extent_end":97326,"ident_utf16":{"start":{"line_number":2654,"utf16_col":12},"end":{"line_number":2654,"utf16_col":26}},"extent_utf16":{"start":{"line_number":2654,"utf16_col":0},"end":{"line_number":2658,"utf16_col":1}}},{"name":"openHeader","fully_qualified_name":"openHeader","kind":"function","ident_start":97347,"ident_end":97357,"extent_start":97328,"extent_end":97480,"ident_utf16":{"start":{"line_number":2660,"utf16_col":19},"end":{"line_number":2660,"utf16_col":29}},"extent_utf16":{"start":{"line_number":2660,"utf16_col":0},"end":{"line_number":2660,"utf16_col":152}}},{"name":"simplifyHasInclude","fully_qualified_name":"simplifyHasInclude","kind":"function","ident_start":97493,"ident_end":97511,"extent_start":97481,"extent_end":99585,"ident_utf16":{"start":{"line_number":2661,"utf16_col":12},"end":{"line_number":2661,"utf16_col":30}},"extent_utf16":{"start":{"line_number":2661,"utf16_col":0},"end":{"line_number":2718,"utf16_col":1}}},{"name":"simplifyName","fully_qualified_name":"simplifyName","kind":"function","ident_start":99771,"ident_end":99783,"extent_start":99759,"extent_end":100349,"ident_utf16":{"start":{"line_number":2722,"utf16_col":12},"end":{"line_number":2722,"utf16_col":24}},"extent_utf16":{"start":{"line_number":2722,"utf16_col":0},"end":{"line_number":2739,"utf16_col":1}}},{"name":"stringToULLbounded","fully_qualified_name":"stringToULLbounded","kind":"function","ident_start":100735,"ident_end":100753,"extent_start":100709,"extent_end":101205,"ident_utf16":{"start":{"line_number":2749,"utf16_col":26},"end":{"line_number":2749,"utf16_col":44}},"extent_utf16":{"start":{"line_number":2749,"utf16_col":0},"end":{"line_number":2765,"utf16_col":1}}},{"name":"characterLiteralToLL","fully_qualified_name":"simplecpp::characterLiteralToLL","kind":"method","ident_start":102246,"ident_end":102266,"extent_start":102225,"extent_end":109369,"ident_utf16":{"start":{"line_number":2795,"utf16_col":21},"end":{"line_number":2795,"utf16_col":41}},"extent_utf16":{"start":{"line_number":2795,"utf16_col":0},"end":{"line_number":2986,"utf16_col":1}}},{"name":"simplifyNumbers","fully_qualified_name":"simplifyNumbers","kind":"function","ident_start":109383,"ident_end":109398,"extent_start":109371,"extent_end":109830,"ident_utf16":{"start":{"line_number":2988,"utf16_col":12},"end":{"line_number":2988,"utf16_col":27}},"extent_utf16":{"start":{"line_number":2988,"utf16_col":0},"end":{"line_number":2998,"utf16_col":1}}},{"name":"simplifyComments","fully_qualified_name":"simplifyComments","kind":"function","ident_start":109844,"ident_end":109860,"extent_start":109832,"extent_end":110077,"ident_utf16":{"start":{"line_number":3000,"utf16_col":12},"end":{"line_number":3000,"utf16_col":28}},"extent_utf16":{"start":{"line_number":3000,"utf16_col":0},"end":{"line_number":3008,"utf16_col":1}}},{"name":"evaluate","fully_qualified_name":"evaluate","kind":"function","ident_start":110096,"ident_end":110104,"extent_start":110079,"extent_end":110556,"ident_utf16":{"start":{"line_number":3010,"utf16_col":17},"end":{"line_number":3010,"utf16_col":25}},"extent_utf16":{"start":{"line_number":3010,"utf16_col":0},"end":{"line_number":3020,"utf16_col":1}}},{"name":"NonExistingFilesCache","fully_qualified_name":"NonExistingFilesCache","kind":"class","ident_start":110895,"ident_end":110916,"extent_start":110889,"extent_end":111386,"ident_utf16":{"start":{"line_number":3033,"utf16_col":6},"end":{"line_number":3033,"utf16_col":27}},"extent_utf16":{"start":{"line_number":3033,"utf16_col":0},"end":{"line_number":3055,"utf16_col":1}}},{"name":"NonExistingFilesCache","fully_qualified_name":"NonExistingFilesCache::NonExistingFilesCache","kind":"function","ident_start":110931,"ident_end":110952,"extent_start":110931,"extent_end":110957,"ident_utf16":{"start":{"line_number":3035,"utf16_col":4},"end":{"line_number":3035,"utf16_col":25}},"extent_utf16":{"start":{"line_number":3035,"utf16_col":4},"end":{"line_number":3035,"utf16_col":30}}},{"name":"contains","fully_qualified_name":"NonExistingFilesCache::contains","kind":"function","ident_start":110968,"ident_end":110976,"extent_start":110963,"extent_end":111106,"ident_utf16":{"start":{"line_number":3037,"utf16_col":9},"end":{"line_number":3037,"utf16_col":17}},"extent_utf16":{"start":{"line_number":3037,"utf16_col":4},"end":{"line_number":3040,"utf16_col":5}}},{"name":"add","fully_qualified_name":"NonExistingFilesCache::add","kind":"function","ident_start":111117,"ident_end":111120,"extent_start":111112,"extent_end":111224,"ident_utf16":{"start":{"line_number":3042,"utf16_col":9},"end":{"line_number":3042,"utf16_col":12}},"extent_utf16":{"start":{"line_number":3042,"utf16_col":4},"end":{"line_number":3045,"utf16_col":5}}},{"name":"clear","fully_qualified_name":"NonExistingFilesCache::clear","kind":"function","ident_start":111235,"ident_end":111240,"extent_start":111230,"extent_end":111316,"ident_utf16":{"start":{"line_number":3047,"utf16_col":9},"end":{"line_number":3047,"utf16_col":14}},"extent_utf16":{"start":{"line_number":3047,"utf16_col":4},"end":{"line_number":3050,"utf16_col":5}}},{"name":"openHeader","fully_qualified_name":"openHeader","kind":"function","ident_start":111469,"ident_end":111479,"extent_start":111450,"extent_end":111921,"ident_utf16":{"start":{"line_number":3061,"utf16_col":19},"end":{"line_number":3061,"utf16_col":29}},"extent_utf16":{"start":{"line_number":3061,"utf16_col":0},"end":{"line_number":3075,"utf16_col":1}}},{"name":"getRelativeFileName","fully_qualified_name":"getRelativeFileName","kind":"function","ident_start":111942,"ident_end":111961,"extent_start":111923,"extent_end":112237,"ident_utf16":{"start":{"line_number":3077,"utf16_col":19},"end":{"line_number":3077,"utf16_col":38}},"extent_utf16":{"start":{"line_number":3077,"utf16_col":0},"end":{"line_number":3082,"utf16_col":1}}},{"name":"openHeaderRelative","fully_qualified_name":"openHeaderRelative","kind":"function","ident_start":112258,"ident_end":112276,"extent_start":112239,"extent_end":112423,"ident_utf16":{"start":{"line_number":3084,"utf16_col":19},"end":{"line_number":3084,"utf16_col":37}},"extent_utf16":{"start":{"line_number":3084,"utf16_col":0},"end":{"line_number":3087,"utf16_col":1}}},{"name":"getIncludePathFileName","fully_qualified_name":"getIncludePathFileName","kind":"function","ident_start":112444,"ident_end":112466,"extent_start":112425,"extent_end":112694,"ident_utf16":{"start":{"line_number":3089,"utf16_col":19},"end":{"line_number":3089,"utf16_col":41}},"extent_utf16":{"start":{"line_number":3089,"utf16_col":0},"end":{"line_number":3095,"utf16_col":1}}},{"name":"openHeaderIncludePath","fully_qualified_name":"openHeaderIncludePath","kind":"function","ident_start":112715,"ident_end":112736,"extent_start":112696,"extent_end":113099,"ident_utf16":{"start":{"line_number":3097,"utf16_col":19},"end":{"line_number":3097,"utf16_col":40}},"extent_utf16":{"start":{"line_number":3097,"utf16_col":0},"end":{"line_number":3105,"utf16_col":1}}},{"name":"openHeader","fully_qualified_name":"openHeader","kind":"function","ident_start":113120,"ident_end":113130,"extent_start":113101,"extent_end":113597,"ident_utf16":{"start":{"line_number":3107,"utf16_col":19},"end":{"line_number":3107,"utf16_col":29}},"extent_utf16":{"start":{"line_number":3107,"utf16_col":0},"end":{"line_number":3123,"utf16_col":1}}},{"name":"getFileName","fully_qualified_name":"getFileName","kind":"function","ident_start":113618,"ident_end":113629,"extent_start":113599,"extent_end":114593,"ident_utf16":{"start":{"line_number":3125,"utf16_col":19},"end":{"line_number":3125,"utf16_col":30}},"extent_utf16":{"start":{"line_number":3125,"utf16_col":0},"end":{"line_number":3150,"utf16_col":1}}},{"name":"hasFile","fully_qualified_name":"hasFile","kind":"function","ident_start":114607,"ident_end":114614,"extent_start":114595,"extent_end":114867,"ident_utf16":{"start":{"line_number":3152,"utf16_col":12},"end":{"line_number":3152,"utf16_col":19}},"extent_utf16":{"start":{"line_number":3152,"utf16_col":0},"end":{"line_number":3155,"utf16_col":1}}},{"name":"load","fully_qualified_name":"simplecpp::load","kind":"method","ident_start":114925,"ident_end":114929,"extent_start":114869,"extent_end":117713,"ident_utf16":{"start":{"line_number":3157,"utf16_col":56},"end":{"line_number":3157,"utf16_col":60}},"extent_utf16":{"start":{"line_number":3157,"utf16_col":0},"end":{"line_number":3239,"utf16_col":1}}},{"name":"preprocessToken","fully_qualified_name":"preprocessToken","kind":"function","ident_start":117727,"ident_end":117742,"extent_start":117715,"extent_end":118770,"ident_utf16":{"start":{"line_number":3241,"utf16_col":12},"end":{"line_number":3241,"utf16_col":27}},"extent_utf16":{"start":{"line_number":3241,"utf16_col":0},"end":{"line_number":3266,"utf16_col":1}}},{"name":"getLocaltime","fully_qualified_name":"getLocaltime","kind":"function","ident_start":118784,"ident_end":118796,"extent_start":118772,"extent_end":118993,"ident_utf16":{"start":{"line_number":3268,"utf16_col":12},"end":{"line_number":3268,"utf16_col":24}},"extent_utf16":{"start":{"line_number":3268,"utf16_col":0},"end":{"line_number":3278,"utf16_col":1}}},{"name":"getDateDefine","fully_qualified_name":"getDateDefine","kind":"function","ident_start":119014,"ident_end":119027,"extent_start":118995,"extent_end":119193,"ident_utf16":{"start":{"line_number":3280,"utf16_col":19},"end":{"line_number":3280,"utf16_col":32}},"extent_utf16":{"start":{"line_number":3280,"utf16_col":0},"end":{"line_number":3285,"utf16_col":1}}},{"name":"getTimeDefine","fully_qualified_name":"getTimeDefine","kind":"function","ident_start":119214,"ident_end":119227,"extent_start":119195,"extent_end":119384,"ident_utf16":{"start":{"line_number":3287,"utf16_col":19},"end":{"line_number":3287,"utf16_col":32}},"extent_utf16":{"start":{"line_number":3287,"utf16_col":0},"end":{"line_number":3292,"utf16_col":1}}},{"name":"preprocess","fully_qualified_name":"simplecpp::preprocess","kind":"method","ident_start":119402,"ident_end":119412,"extent_start":119386,"extent_end":143287,"ident_utf16":{"start":{"line_number":3294,"utf16_col":16},"end":{"line_number":3294,"utf16_col":26}},"extent_utf16":{"start":{"line_number":3294,"utf16_col":0},"end":{"line_number":3771,"utf16_col":1}}},{"name":"IfState","fully_qualified_name":"IfState","kind":"type","ident_start":123989,"ident_end":123996,"extent_start":123984,"extent_end":124030,"ident_utf16":{"start":{"line_number":3376,"utf16_col":9},"end":{"line_number":3376,"utf16_col":16}},"extent_utf16":{"start":{"line_number":3376,"utf16_col":4},"end":{"line_number":3376,"utf16_col":50}}},{"name":"cleanup","fully_qualified_name":"simplecpp::cleanup","kind":"method","ident_start":143305,"ident_end":143312,"extent_start":143289,"extent_end":143514,"ident_utf16":{"start":{"line_number":3773,"utf16_col":16},"end":{"line_number":3773,"utf16_col":23}},"extent_utf16":{"start":{"line_number":3773,"utf16_col":0},"end":{"line_number":3778,"utf16_col":1}}},{"name":"getCStd","fully_qualified_name":"simplecpp::getCStd","kind":"method","ident_start":143545,"ident_end":143552,"extent_start":143516,"extent_end":144246,"ident_utf16":{"start":{"line_number":3780,"utf16_col":29},"end":{"line_number":3780,"utf16_col":36}},"extent_utf16":{"start":{"line_number":3780,"utf16_col":0},"end":{"line_number":3793,"utf16_col":1}}},{"name":"getCStdString","fully_qualified_name":"simplecpp::getCStdString","kind":"method","ident_start":144271,"ident_end":144284,"extent_start":144248,"extent_end":144971,"ident_utf16":{"start":{"line_number":3795,"utf16_col":23},"end":{"line_number":3795,"utf16_col":36}},"extent_utf16":{"start":{"line_number":3795,"utf16_col":0},"end":{"line_number":3818,"utf16_col":1}}},{"name":"getCStdString","fully_qualified_name":"simplecpp::getCStdString","kind":"method","ident_start":144996,"ident_end":145009,"extent_start":144973,"extent_end":145077,"ident_utf16":{"start":{"line_number":3820,"utf16_col":23},"end":{"line_number":3820,"utf16_col":36}},"extent_utf16":{"start":{"line_number":3820,"utf16_col":0},"end":{"line_number":3823,"utf16_col":1}}},{"name":"getCppStd","fully_qualified_name":"simplecpp::getCppStd","kind":"method","ident_start":145110,"ident_end":145119,"extent_start":145079,"extent_end":145898,"ident_utf16":{"start":{"line_number":3825,"utf16_col":31},"end":{"line_number":3825,"utf16_col":40}},"extent_utf16":{"start":{"line_number":3825,"utf16_col":0},"end":{"line_number":3842,"utf16_col":1}}},{"name":"getCppStdString","fully_qualified_name":"simplecpp::getCppStdString","kind":"method","ident_start":145923,"ident_end":145938,"extent_start":145900,"extent_end":146733,"ident_utf16":{"start":{"line_number":3844,"utf16_col":23},"end":{"line_number":3844,"utf16_col":38}},"extent_utf16":{"start":{"line_number":3844,"utf16_col":0},"end":{"line_number":3872,"utf16_col":1}}},{"name":"getCppStdString","fully_qualified_name":"simplecpp::getCppStdString","kind":"method","ident_start":146758,"ident_end":146773,"extent_start":146735,"extent_end":146845,"ident_utf16":{"start":{"line_number":3874,"utf16_col":23},"end":{"line_number":3874,"utf16_col":38}},"extent_utf16":{"start":{"line_number":3874,"utf16_col":0},"end":{"line_number":3877,"utf16_col":1}}}]}},"codeViewLayoutRoute":{"repo":{"id":885957845,"defaultBranch":"master","name":"simplecpp","ownerLogin":"tmpvar","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2024-11-09T20:51:28.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/46673?v=4","public":true,"private":false,"isOrgOwned":false,"isArchived":false},"currentUser":null,"uploadToken":"e7HKRtaQfqZD8elGKM23FZMAyfVybnvsDEZnW3y6h9ZcN-5sH92NxkGaadGJrhrS1q8n96vZ3BrYfKe_4bx-PQ","allShortcutsEnabled":false,"treeExpanded":true,"path":"simplecpp.cpp","symbolsExpanded":false,"refInfo":{"name":"master","listCacheKey":"v0:1731185746.0","canEdit":false,"currentOid":"0ab783c7d6c208ac9f83550fc1f1ab9de3280d03"},"helpUrl":"https://docs.github.com","githubDevUrl":null},"codeViewFileTreeLayoutRoute":{"fileTree":{"":{"items":[{"name":".github","path":".github","contentType":"directory"},{"name":"testsuite","path":"testsuite","contentType":"directory"},{"name":".clang-tidy","path":".clang-tidy","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":"CMakeLists.txt","path":"CMakeLists.txt","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"Makefile","path":"Makefile","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"appveyor.yml","path":"appveyor.yml","contentType":"file"},{"name":"main.cpp","path":"main.cpp","contentType":"file"},{"name":"run-tests.py","path":"run-tests.py","contentType":"file"},{"name":"runastyle","path":"runastyle","contentType":"file"},{"name":"runastyle.bat","path":"runastyle.bat","contentType":"file"},{"name":"selfcheck.sh","path":"selfcheck.sh","contentType":"file"},{"name":"simplecpp.cpp","path":"simplecpp.cpp","contentType":"file"},{"name":"simplecpp.h","path":"simplecpp.h","contentType":"file"},{"name":"test.cpp","path":"test.cpp","contentType":"file"}],"totalCount":17}},"fileTreeProcessingTime":48.482213,"foldersToFetch":[]},"codeViewBlobLayoutRoute":{"codeLineWrapEnabled":false,"refInfo":{"name":"master","listCacheKey":"v0:1731185746.0","canEdit":false,"refType":"branch","currentOid":"0ab783c7d6c208ac9f83550fc1f1ab9de3280d03","canEditOnDefaultBranch":false,"fileExistsOnDefault":true},"path":"simplecpp.cpp","blob":{"copilotSWEAgentEnabled":false,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/tmpvar/simplecpp/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"simplecpp.cpp","displayUrl":"https://github.com/tmpvar/simplecpp/blob/master/simplecpp.cpp?raw=true","headerInfo":{"blobSize":"143 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"onBranch":true,"shortPath":"67e59ab","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Ftmpvar%2Fsimplecpp%2Fblob%2Fmaster%2Fsimplecpp.cpp","isCSV":false,"isRichtext":false,"lineInfo":{"truncatedLoc":"3882","truncatedSloc":"3447"},"mode":"executable file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"isIssueTemplate":false,"isDiscussionTemplate":false,"language":"C++","languageID":43,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/tmpvar/simplecpp/blob/master/simplecpp.cpp","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/tmpvar/simplecpp/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/tmpvar/simplecpp/raw/refs/heads/master/simplecpp.cpp","renderImageOrRaw":false,"shortPath":null,"symbolsEnabled":true,"tabSize":4,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null},"copilotInfo":null,"copilotAccessAllowed":false,"copilotSpacesEnabled":false,"modelsAccessAllowed":false,"modelsRepoIntegrationEnabled":false,"isMarketplaceEnabled":true},"codeViewBlobLayoutRoute.StyledBlob":{"rawLines":["/*"," * simplecpp - A simple and high-fidelity C/C++ preprocessor library"," * Copyright (C) 2016-2023 simplecpp team"," */","","#if defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__)","#define SIMPLECPP_WINDOWS","#define NOMINMAX","#endif","","#include \"simplecpp.h\"","","#include \u003calgorithm\u003e","#include \u003ccassert\u003e","#include \u003ccctype\u003e","#include \u003cclimits\u003e","#include \u003ccstddef\u003e // IWYU pragma: keep","#include \u003ccstdio\u003e","#include \u003ccstdlib\u003e","#include \u003ccstring\u003e","#include \u003cctime\u003e","#include \u003cexception\u003e","#include \u003cfstream\u003e","#include \u003ciostream\u003e","#include \u003cistream\u003e","#include \u003climits\u003e","#include \u003clist\u003e","#include \u003cmap\u003e","#include \u003cset\u003e","#include \u003csstream\u003e","#include \u003cstack\u003e","#include \u003cstdexcept\u003e","#include \u003cstring\u003e","#if __cplusplus \u003e= 201103L","#ifdef SIMPLECPP_WINDOWS","#include \u003cmutex\u003e","#endif","#include \u003cunordered_map\u003e","#endif","#include \u003cutility\u003e","#include \u003cvector\u003e","","#ifdef SIMPLECPP_WINDOWS","#include \u003cwindows.h\u003e","#undef ERROR","#endif","","#if __cplusplus \u003e= 201103L","#define OVERRIDE override","#define EXPLICIT explicit","#else","#define OVERRIDE","#define EXPLICIT","#endif","","#if (__cplusplus \u003c 201103L) \u0026\u0026 !defined(__APPLE__)","#define nullptr NULL","#endif","","static bool isHex(const std::string \u0026s)","{","    return s.size()\u003e2 \u0026\u0026 (s.compare(0,2,\"0x\")==0 || s.compare(0,2,\"0X\")==0);","}","","static bool isOct(const std::string \u0026s)","{","    return s.size()\u003e1 \u0026\u0026 (s[0]=='0') \u0026\u0026 (s[1] \u003e= '0') \u0026\u0026 (s[1] \u003c '8');","}","","// TODO: added an undercore since this conflicts with a function of the same name in utils.h from Cppcheck source when building Cppcheck with MSBuild","static bool isStringLiteral_(const std::string \u0026s)","{","    return s.size() \u003e 1 \u0026\u0026 (s[0]=='\\\"') \u0026\u0026 (*s.rbegin()=='\\\"');","}","","// TODO: added an undercore since this conflicts with a function of the same name in utils.h from Cppcheck source when building Cppcheck with MSBuild","static bool isCharLiteral_(const std::string \u0026s)","{","    // char literal patterns can include 'a', '\\t', '\\000', '\\xff', 'abcd', and maybe ''","    // This only checks for the surrounding '' but doesn't parse the content.","    return s.size() \u003e 1 \u0026\u0026 (s[0]=='\\'') \u0026\u0026 (*s.rbegin()=='\\'');","}","","static const simplecpp::TokenString DEFINE(\"define\");","static const simplecpp::TokenString UNDEF(\"undef\");","","static const simplecpp::TokenString INCLUDE(\"include\");","","static const simplecpp::TokenString ERROR(\"error\");","static const simplecpp::TokenString WARNING(\"warning\");","","static const simplecpp::TokenString IF(\"if\");","static const simplecpp::TokenString IFDEF(\"ifdef\");","static const simplecpp::TokenString IFNDEF(\"ifndef\");","static const simplecpp::TokenString DEFINED(\"defined\");","static const simplecpp::TokenString ELSE(\"else\");","static const simplecpp::TokenString ELIF(\"elif\");","static const simplecpp::TokenString ENDIF(\"endif\");","","static const simplecpp::TokenString PRAGMA(\"pragma\");","static const simplecpp::TokenString ONCE(\"once\");","","static const simplecpp::TokenString HAS_INCLUDE(\"__has_include\");","","template\u003cclass T\u003e static std::string toString(T t)","{","    // NOLINTNEXTLINE(misc-const-correctness) - false positive","    std::ostringstream ostr;","    ostr \u003c\u003c t;","    return ostr.str();","}","","static long long stringToLL(const std::string \u0026s)","{","    long long ret;","    const bool hex = isHex(s);","    const bool oct = isOct(s);","    std::istringstream istr(hex ? s.substr(2) : oct ? s.substr(1) : s);","    if (hex)","        istr \u003e\u003e std::hex;","    else if (oct)","        istr \u003e\u003e std::oct;","    istr \u003e\u003e ret;","    return ret;","}","","static unsigned long long stringToULL(const std::string \u0026s)","{","    unsigned long long ret;","    const bool hex = isHex(s);","    const bool oct = isOct(s);","    std::istringstream istr(hex ? s.substr(2) : oct ? s.substr(1) : s);","    if (hex)","        istr \u003e\u003e std::hex;","    else if (oct)","        istr \u003e\u003e std::oct;","    istr \u003e\u003e ret;","    return ret;","}","","static bool endsWith(const std::string \u0026s, const std::string \u0026e)","{","    return (s.size() \u003e= e.size()) \u0026\u0026 std::equal(e.rbegin(), e.rend(), s.rbegin());","}","","static bool sameline(const simplecpp::Token *tok1, const simplecpp::Token *tok2)","{","    return tok1 \u0026\u0026 tok2 \u0026\u0026 tok1-\u003elocation.sameline(tok2-\u003elocation);","}","","static bool isAlternativeBinaryOp(const simplecpp::Token *tok, const std::string \u0026alt)","{","    return (tok-\u003ename \u0026\u0026","            tok-\u003estr() == alt \u0026\u0026","            tok-\u003eprevious \u0026\u0026","            tok-\u003enext \u0026\u0026","            (tok-\u003eprevious-\u003enumber || tok-\u003eprevious-\u003ename || tok-\u003eprevious-\u003eop == ')') \u0026\u0026","            (tok-\u003enext-\u003enumber || tok-\u003enext-\u003ename || tok-\u003enext-\u003eop == '('));","}","","static bool isAlternativeUnaryOp(const simplecpp::Token *tok, const std::string \u0026alt)","{","    return ((tok-\u003ename \u0026\u0026 tok-\u003estr() == alt) \u0026\u0026","            (!tok-\u003eprevious || tok-\u003eprevious-\u003eop == '(') \u0026\u0026","            (tok-\u003enext \u0026\u0026 (tok-\u003enext-\u003ename || tok-\u003enext-\u003enumber)));","}","","static std::string replaceAll(std::string s, const std::string\u0026 from, const std::string\u0026 to)","{","    for (size_t pos = s.find(from); pos != std::string::npos; pos = s.find(from, pos + to.size()))","        s.replace(pos, from.size(), to);","    return s;","}","","const std::string simplecpp::Location::emptyFileName;","","void simplecpp::Location::adjust(const std::string \u0026str)","{","    if (strpbrk(str.c_str(), \"\\r\\n\") == nullptr) {","        col += str.size();","        return;","    }","","    for (std::size_t i = 0U; i \u003c str.size(); ++i) {","        col++;","        if (str[i] == '\\n' || str[i] == '\\r') {","            col = 1;","            line++;","            if (str[i] == '\\r' \u0026\u0026 (i+1)\u003cstr.size() \u0026\u0026 str[i+1]=='\\n')","                ++i;","        }","    }","}","","bool simplecpp::Token::isOneOf(const char ops[]) const","{","    return (op != '\\0') \u0026\u0026 (std::strchr(ops, op) != nullptr);","}","","bool simplecpp::Token::startsWithOneOf(const char c[]) const","{","    return std::strchr(c, string[0]) != nullptr;","}","","bool simplecpp::Token::endsWithOneOf(const char c[]) const","{","    return std::strchr(c, string[string.size() - 1U]) != nullptr;","}","","void simplecpp::Token::printAll() const","{","    const Token *tok = this;","    while (tok-\u003eprevious)","        tok = tok-\u003eprevious;","    for (; tok; tok = tok-\u003enext) {","        if (tok-\u003eprevious) {","            std::cout \u003c\u003c (sameline(tok, tok-\u003eprevious) ? ' ' : '\\n');","        }","        std::cout \u003c\u003c tok-\u003estr();","    }","    std::cout \u003c\u003c std::endl;","}","","void simplecpp::Token::printOut() const","{","    for (const Token *tok = this; tok; tok = tok-\u003enext) {","        if (tok != this) {","            std::cout \u003c\u003c (sameline(tok, tok-\u003eprevious) ? ' ' : '\\n');","        }","        std::cout \u003c\u003c tok-\u003estr();","    }","    std::cout \u003c\u003c std::endl;","}","","// cppcheck-suppress noConstructor - we call init() in the inherited to initialize the private members","class simplecpp::TokenList::Stream {","public:","    virtual ~Stream() {}","","    virtual int get() = 0;","    virtual int peek() = 0;","    virtual void unget() = 0;","    virtual bool good() = 0;","","    unsigned char readChar()","    {","        unsigned char ch = static_cast\u003cunsigned char\u003e(get());","","        // For UTF-16 encoded files the BOM is 0xfeff/0xfffe. If the","        // character is non-ASCII character then replace it with 0xff","        if (isUtf16) {","            const unsigned char ch2 = static_cast\u003cunsigned char\u003e(get());","            const int ch16 = makeUtf16Char(ch, ch2);","            ch = static_cast\u003cunsigned char\u003e(((ch16 \u003e= 0x80) ? 0xff : ch16));","        }","","        // Handling of newlines..","        if (ch == '\\r') {","            ch = '\\n';","","            int ch2 = get();","            if (isUtf16) {","                const int c2 = get();","                ch2 = makeUtf16Char(ch2, c2);","            }","","            if (ch2 != '\\n')","                ungetChar();","        }","","        return ch;","    }","","    unsigned char peekChar()","    {","        unsigned char ch = static_cast\u003cunsigned char\u003e(peek());","","        // For UTF-16 encoded files the BOM is 0xfeff/0xfffe. If the","        // character is non-ASCII character then replace it with 0xff","        if (isUtf16) {","            (void)get();","            const unsigned char ch2 = static_cast\u003cunsigned char\u003e(peek());","            unget();","            const int ch16 = makeUtf16Char(ch, ch2);","            ch = static_cast\u003cunsigned char\u003e(((ch16 \u003e= 0x80) ? 0xff : ch16));","        }","","        // Handling of newlines..","        if (ch == '\\r')","            ch = '\\n';","","        return ch;","    }","","    void ungetChar()","    {","        unget();","        if (isUtf16)","            unget();","    }","","protected:","    void init() {","        // initialize since we use peek() in getAndSkipBOM()","        isUtf16 = false;","        bom = getAndSkipBOM();","        isUtf16 = (bom == 0xfeff || bom == 0xfffe);","    }","","private:","    inline int makeUtf16Char(const unsigned char ch, const unsigned char ch2) const","    {","        return (bom == 0xfeff) ? (ch\u003c\u003c8 | ch2) : (ch2\u003c\u003c8 | ch);","    }","","    unsigned short getAndSkipBOM()","    {","        const int ch1 = peek();","","        // The UTF-16 BOM is 0xfffe or 0xfeff.","        if (ch1 \u003e= 0xfe) {","            (void)get();","            const unsigned short byte = (static_cast\u003cunsigned char\u003e(ch1) \u003c\u003c 8);","            if (peek() \u003e= 0xfe)","                return byte | static_cast\u003cunsigned char\u003e(get());","            unget();","            return 0;","        }","","        // Skip UTF-8 BOM 0xefbbbf","        if (ch1 == 0xef) {","            (void)get();","            if (peek() == 0xbb) {","                (void)get();","                if (peek() == 0xbf) {","                    (void)get();","                    return 0;","                }","                unget();","            }","            unget();","        }","","        return 0;","    }","","    unsigned short bom;","protected:","    bool isUtf16;","};","","class StdIStream : public simplecpp::TokenList::Stream {","public:","    // cppcheck-suppress uninitDerivedMemberVar - we call Stream::init() to initialize the private members","    EXPLICIT StdIStream(std::istream \u0026istr)","        : istr(istr)","    {","        assert(istr.good());","        init();","    }","","    virtual int get() OVERRIDE {","        return istr.get();","    }","    virtual int peek() OVERRIDE {","        return istr.peek();","    }","    virtual void unget() OVERRIDE {","        istr.unget();","    }","    virtual bool good() OVERRIDE {","        return istr.good();","    }","","private:","    std::istream \u0026istr;","};","","class StdCharBufStream : public simplecpp::TokenList::Stream {","public:","    // cppcheck-suppress uninitDerivedMemberVar - we call Stream::init() to initialize the private members","    StdCharBufStream(const unsigned char* str, std::size_t size)","        : str(str)","        , size(size)","        , pos(0)","        , lastStatus(0)","    {","        init();","    }","","    virtual int get() OVERRIDE {","        if (pos \u003e= size)","            return lastStatus = EOF;","        return str[pos++];","    }","    virtual int peek() OVERRIDE {","        if (pos \u003e= size)","            return lastStatus = EOF;","        return str[pos];","    }","    virtual void unget() OVERRIDE {","        --pos;","    }","    virtual bool good() OVERRIDE {","        return lastStatus != EOF;","    }","","private:","    const unsigned char *str;","    const std::size_t size;","    std::size_t pos;","    int lastStatus;","};","","class FileStream : public simplecpp::TokenList::Stream {","public:","    // cppcheck-suppress uninitDerivedMemberVar - we call Stream::init() to initialize the private members","    EXPLICIT FileStream(const std::string \u0026filename, std::vector\u003cstd::string\u003e \u0026files)","        : file(fopen(filename.c_str(), \"rb\"))","        , lastCh(0)","        , lastStatus(0)","    {","        if (!file) {","            files.push_back(filename);","            throw simplecpp::Output(files, simplecpp::Output::FILE_NOT_FOUND, \"File is missing: \" + filename);","        }","        init();","    }","","    ~FileStream() OVERRIDE {","        fclose(file);","        file = nullptr;","    }","","    virtual int get() OVERRIDE {","        lastStatus = lastCh = fgetc(file);","        return lastCh;","    }","    virtual int peek() OVERRIDE{","        // keep lastCh intact","        const int ch = fgetc(file);","        unget_internal(ch);","        return ch;","    }","    virtual void unget() OVERRIDE {","        unget_internal(lastCh);","    }","    virtual bool good() OVERRIDE {","        return lastStatus != EOF;","    }","","private:","    void unget_internal(int ch) {","        if (isUtf16) {","            // TODO: use ungetc() as well","            // UTF-16 has subsequent unget() calls","            fseek(file, -1, SEEK_CUR);","        }","        else","            ungetc(ch, file);","    }","","    FileStream(const FileStream\u0026);","    FileStream \u0026operator=(const FileStream\u0026);","","    FILE *file;","    int lastCh;","    int lastStatus;","};","","simplecpp::TokenList::TokenList(std::vector\u003cstd::string\u003e \u0026filenames) : frontToken(nullptr), backToken(nullptr), files(filenames) {}","","simplecpp::TokenList::TokenList(std::istream \u0026istr, std::vector\u003cstd::string\u003e \u0026filenames, const std::string \u0026filename, OutputList *outputList)","    : frontToken(nullptr), backToken(nullptr), files(filenames)","{","    StdIStream stream(istr);","    readfile(stream,filename,outputList);","}","","simplecpp::TokenList::TokenList(const unsigned char* data, std::size_t size, std::vector\u003cstd::string\u003e \u0026filenames, const std::string \u0026filename, OutputList *outputList)","    : frontToken(nullptr), backToken(nullptr), files(filenames)","{","    StdCharBufStream stream(data, size);","    readfile(stream,filename,outputList);","}","","simplecpp::TokenList::TokenList(const char* data, std::size_t size, std::vector\u003cstd::string\u003e \u0026filenames, const std::string \u0026filename, OutputList *outputList)","        : frontToken(nullptr), backToken(nullptr), files(filenames)","{","    StdCharBufStream stream(reinterpret_cast\u003cconst unsigned char*\u003e(data), size);","    readfile(stream,filename,outputList);","}","","simplecpp::TokenList::TokenList(const std::string \u0026filename, std::vector\u003cstd::string\u003e \u0026filenames, OutputList *outputList)","        : frontToken(nullptr), backToken(nullptr), files(filenames)","{","    try","    {","        FileStream stream(filename, filenames);","        readfile(stream,filename,outputList);","    }","    catch(const simplecpp::Output \u0026 e) // TODO handle extra type of errors","    {","        outputList-\u003epush_back(e);","    }","}","","simplecpp::TokenList::TokenList(const TokenList \u0026other) : frontToken(nullptr), backToken(nullptr), files(other.files)","{","    *this = other;","}","","#if __cplusplus \u003e= 201103L","simplecpp::TokenList::TokenList(TokenList \u0026\u0026other) : frontToken(nullptr), backToken(nullptr), files(other.files)","{","    *this = std::move(other);","}","#endif","","simplecpp::TokenList::~TokenList()","{","    clear();","}","","simplecpp::TokenList \u0026simplecpp::TokenList::operator=(const TokenList \u0026other)","{","    if (this != \u0026other) {","        clear();","        files = other.files;","        for (const Token *tok = other.cfront(); tok; tok = tok-\u003enext)","            push_back(new Token(*tok));","        sizeOfType = other.sizeOfType;","    }","    return *this;","}","","#if __cplusplus \u003e= 201103L","simplecpp::TokenList \u0026simplecpp::TokenList::operator=(TokenList \u0026\u0026other)","{","    if (this != \u0026other) {","        clear();","        frontToken = other.frontToken;","        other.frontToken = nullptr;","        backToken = other.backToken;","        other.backToken = nullptr;","        files = other.files;","        sizeOfType = std::move(other.sizeOfType);","    }","    return *this;","}","#endif","","void simplecpp::TokenList::clear()","{","    backToken = nullptr;","    while (frontToken) {","        Token * const next = frontToken-\u003enext;","        delete frontToken;","        frontToken = next;","    }","    sizeOfType.clear();","}","","void simplecpp::TokenList::push_back(Token *tok)","{","    if (!frontToken)","        frontToken = tok;","    else","        backToken-\u003enext = tok;","    tok-\u003eprevious = backToken;","    backToken = tok;","}","","void simplecpp::TokenList::dump() const","{","    std::cout \u003c\u003c stringify() \u003c\u003c std::endl;","}","","std::string simplecpp::TokenList::stringify() const","{","    std::ostringstream ret;","    Location loc(files);","    for (const Token *tok = cfront(); tok; tok = tok-\u003enext) {","        if (tok-\u003elocation.line \u003c loc.line || tok-\u003elocation.fileIndex != loc.fileIndex) {","            ret \u003c\u003c \"\\n#line \" \u003c\u003c tok-\u003elocation.line \u003c\u003c \" \\\"\" \u003c\u003c tok-\u003elocation.file() \u003c\u003c \"\\\"\\n\";","            loc = tok-\u003elocation;","        }","","        while (tok-\u003elocation.line \u003e loc.line) {","            ret \u003c\u003c '\\n';","            loc.line++;","        }","","        if (sameline(tok-\u003eprevious, tok))","            ret \u003c\u003c ' ';","","        ret \u003c\u003c tok-\u003estr();","","        loc.adjust(tok-\u003estr());","    }","","    return ret.str();","}","","static bool isNameChar(unsigned char ch)","{","    return std::isalnum(ch) || ch == '_' || ch == '$';","}","","static std::string escapeString(const std::string \u0026str)","{","    std::ostringstream ostr;","    ostr \u003c\u003c '\\\"';","    for (std::size_t i = 1U; i \u003c str.size() - 1; ++i) {","        const char c = str[i];","        if (c == '\\\\' || c == '\\\"' || c == '\\'')","            ostr \u003c\u003c '\\\\';","        ostr \u003c\u003c c;","    }","    ostr \u003c\u003c '\\\"';","    return ostr.str();","}","","static void portabilityBackslash(simplecpp::OutputList *outputList, const std::vector\u003cstd::string\u003e \u0026files, const simplecpp::Location \u0026location)","{","    if (!outputList)","        return;","    simplecpp::Output err(files);","    err.type = simplecpp::Output::PORTABILITY_BACKSLASH;","    err.location = location;","    err.msg = \"Combination 'backslash space newline' is not portable.\";","    outputList-\u003epush_back(err);","}","","static bool isStringLiteralPrefix(const std::string \u0026str)","{","    return str == \"u\" || str == \"U\" || str == \"L\" || str == \"u8\" ||","           str == \"R\" || str == \"uR\" || str == \"UR\" || str == \"LR\" || str == \"u8R\";","}","","void simplecpp::TokenList::lineDirective(unsigned int fileIndex, unsigned int line, Location *location)","{","    if (fileIndex != location-\u003efileIndex || line \u003e= location-\u003eline) {","        location-\u003efileIndex = fileIndex;","        location-\u003eline = line;","        return;","    }","","    if (line + 2 \u003e= location-\u003eline) {","        location-\u003eline = line;","        while (cback()-\u003eop != '#')","            deleteToken(back());","        deleteToken(back());","        return;","    }","}","","static const std::string COMMENT_END(\"*/\");","","void simplecpp::TokenList::readfile(Stream \u0026stream, const std::string \u0026filename, OutputList *outputList)","{","    std::stack\u003csimplecpp::Location\u003e loc;","","    unsigned int multiline = 0U;","","    const Token *oldLastToken = nullptr;","","    Location location(files);","    location.fileIndex = fileIndex(filename);","    location.line = 1U;","    location.col  = 1U;","    while (stream.good()) {","        unsigned char ch = stream.readChar();","        if (!stream.good())","            break;","","        if (ch \u003e= 0x80) {","            if (outputList) {","                simplecpp::Output err(files);","                err.type = simplecpp::Output::UNHANDLED_CHAR_ERROR;","                err.location = location;","                std::ostringstream s;","                s \u003c\u003c static_cast\u003cint\u003e(ch);","                err.msg = \"The code contains unhandled character(s) (character code=\" + s.str() + \"). Neither unicode nor extended ascii is supported.\";","                outputList-\u003epush_back(err);","            }","            clear();","            return;","        }","","        if (ch == '\\n') {","            if (cback() \u0026\u0026 cback()-\u003eop == '\\\\') {","                if (location.col \u003e cback()-\u003elocation.col + 1U)","                    portabilityBackslash(outputList, files, cback()-\u003elocation);","                ++multiline;","                deleteToken(back());","            } else {","                location.line += multiline + 1;","                multiline = 0U;","            }","            if (!multiline)","                location.col = 1;","","            if (oldLastToken != cback()) {","                oldLastToken = cback();","                if (!isLastLinePreprocessor())","                    continue;","                const std::string lastline(lastLine());","                if (lastline == \"# file %str%\") {","                    const Token *strtok = cback();","                    while (strtok-\u003ecomment)","                        strtok = strtok-\u003eprevious;","                    loc.push(location);","                    location.fileIndex = fileIndex(strtok-\u003estr().substr(1U, strtok-\u003estr().size() - 2U));","                    location.line = 1U;","                } else if (lastline == \"# line %num%\") {","                    const Token *numtok = cback();","                    while (numtok-\u003ecomment)","                        numtok = numtok-\u003eprevious;","                    lineDirective(location.fileIndex, std::atol(numtok-\u003estr().c_str()), \u0026location);","                } else if (lastline == \"# %num% %str%\" || lastline == \"# line %num% %str%\") {","                    const Token *strtok = cback();","                    while (strtok-\u003ecomment)","                        strtok = strtok-\u003eprevious;","                    const Token *numtok = strtok-\u003eprevious;","                    while (numtok-\u003ecomment)","                        numtok = numtok-\u003eprevious;","                    lineDirective(fileIndex(replaceAll(strtok-\u003estr().substr(1U, strtok-\u003estr().size() - 2U),\"\\\\\\\\\",\"\\\\\")),","                                  std::atol(numtok-\u003estr().c_str()), \u0026location);","                }","                // #endfile","                else if (lastline == \"# endfile\" \u0026\u0026 !loc.empty()) {","                    location = loc.top();","                    loc.pop();","                }","            }","","            continue;","        }","","        if (ch \u003c= ' ') {","            location.col++;","            continue;","        }","","        TokenString currentToken;","","        if (cback() \u0026\u0026 cback()-\u003elocation.line == location.line \u0026\u0026 cback()-\u003eprevious \u0026\u0026 cback()-\u003eprevious-\u003eop == '#') {","            const Token* const llTok = lastLineTok();","            if (llTok \u0026\u0026 llTok-\u003eop == '#' \u0026\u0026 llTok-\u003enext \u0026\u0026 (llTok-\u003enext-\u003estr() == \"error\" || llTok-\u003enext-\u003estr() == \"warning\")) {","                char prev = ' ';","                while (stream.good() \u0026\u0026 (prev == '\\\\' || (ch != '\\r' \u0026\u0026 ch != '\\n'))) {","                    currentToken += ch;","                    prev = ch;","                    ch = stream.readChar();","                }","                stream.ungetChar();","                push_back(new Token(currentToken, location));","                location.adjust(currentToken);","                continue;","            }","        }","","        // number or name","        if (isNameChar(ch)) {","            const bool num = std::isdigit(ch);","            while (stream.good() \u0026\u0026 isNameChar(ch)) {","                currentToken += ch;","                ch = stream.readChar();","                if (num \u0026\u0026 ch=='\\'' \u0026\u0026 isNameChar(stream.peekChar()))","                    ch = stream.readChar();","            }","","            stream.ungetChar();","        }","","        // comment","        else if (ch == '/' \u0026\u0026 stream.peekChar() == '/') {","            while (stream.good() \u0026\u0026 ch != '\\r' \u0026\u0026 ch != '\\n') {","                currentToken += ch;","                ch = stream.readChar();","            }","            const std::string::size_type pos = currentToken.find_last_not_of(\" \\t\");","            if (pos \u003c currentToken.size() - 1U \u0026\u0026 currentToken[pos] == '\\\\')","                portabilityBackslash(outputList, files, location);","            if (currentToken[currentToken.size() - 1U] == '\\\\') {","                ++multiline;","                currentToken.erase(currentToken.size() - 1U);","            } else {","                stream.ungetChar();","            }","        }","","        // comment","        else if (ch == '/' \u0026\u0026 stream.peekChar() == '*') {","            currentToken = \"/*\";","            (void)stream.readChar();","            ch = stream.readChar();","            while (stream.good()) {","                currentToken += ch;","                if (currentToken.size() \u003e= 4U \u0026\u0026 endsWith(currentToken, COMMENT_END))","                    break;","                ch = stream.readChar();","            }","            // multiline..","","            std::string::size_type pos = 0;","            while ((pos = currentToken.find(\"\\\\\\n\",pos)) != std::string::npos) {","                currentToken.erase(pos,2);","                ++multiline;","            }","            if (multiline || isLastLinePreprocessor()) {","                pos = 0;","                while ((pos = currentToken.find('\\n',pos)) != std::string::npos) {","                    currentToken.erase(pos,1);","                    ++multiline;","                }","            }","        }","","        // string / char literal","        else if (ch == '\\\"' || ch == '\\'') {","            std::string prefix;","            if (cback() \u0026\u0026 cback()-\u003ename \u0026\u0026 isStringLiteralPrefix(cback()-\u003estr()) \u0026\u0026","                ((cback()-\u003elocation.col + cback()-\u003estr().size()) == location.col) \u0026\u0026","                (cback()-\u003elocation.line == location.line)) {","                prefix = cback()-\u003estr();","            }","            // C++11 raw string literal","            if (ch == '\\\"' \u0026\u0026 !prefix.empty() \u0026\u0026 *cback()-\u003estr().rbegin() == 'R') {","                std::string delim;","                currentToken = ch;","                prefix.resize(prefix.size() - 1);","                ch = stream.readChar();","                while (stream.good() \u0026\u0026 ch != '(' \u0026\u0026 ch != '\\n') {","                    delim += ch;","                    ch = stream.readChar();","                }","                if (!stream.good() || ch == '\\n') {","                    if (outputList) {","                        Output err(files);","                        err.type = Output::SYNTAX_ERROR;","                        err.location = location;","                        err.msg = \"Invalid newline in raw string delimiter.\";","                        outputList-\u003epush_back(err);","                    }","                    return;","                }","                const std::string endOfRawString(')' + delim + currentToken);","                while (stream.good() \u0026\u0026 !(endsWith(currentToken, endOfRawString) \u0026\u0026 currentToken.size() \u003e 1))","                    currentToken += stream.readChar();","                if (!endsWith(currentToken, endOfRawString)) {","                    if (outputList) {","                        Output err(files);","                        err.type = Output::SYNTAX_ERROR;","                        err.location = location;","                        err.msg = \"Raw string missing terminating delimiter.\";","                        outputList-\u003epush_back(err);","                    }","                    return;","                }","                currentToken.erase(currentToken.size() - endOfRawString.size(), endOfRawString.size() - 1U);","                currentToken = escapeString(currentToken);","                currentToken.insert(0, prefix);","                back()-\u003esetstr(currentToken);","                location.adjust(currentToken);","                if (currentToken.find_first_of(\"\\r\\n\") == std::string::npos)","                    location.col += 2 + 2 * delim.size();","                else","                    location.col += 1 + delim.size();","","                continue;","            }","","            currentToken = readUntil(stream,location,ch,ch,outputList);","            if (currentToken.size() \u003c 2U)","                // Error is reported by readUntil()","                return;","","            std::string s = currentToken;","            std::string::size_type pos;","            int newlines = 0;","            while ((pos = s.find_first_of(\"\\r\\n\")) != std::string::npos) {","                s.erase(pos,1);","                newlines++;","            }","","            if (prefix.empty())","                push_back(new Token(s, location, std::isspace(stream.peekChar()))); // push string without newlines","            else","                back()-\u003esetstr(prefix + s);","","            if (newlines \u003e 0 ) {","                const Token * const llTok = lastLineTok();","                if (llTok \u0026\u0026 llTok-\u003eop == '#' \u0026\u0026 llTok-\u003enext \u0026\u0026 (llTok-\u003enext-\u003estr() == \"define\" || llTok-\u003enext-\u003estr() == \"pragma\") \u0026\u0026 llTok-\u003enext-\u003enext) {","                    multiline += newlines;","                    location.adjust(s);","                    continue;","                }","            }","","            location.adjust(currentToken);","            continue;","        }","","        else {","            currentToken += ch;","        }","","        if (*currentToken.begin() == '\u003c') {","            const Token * const llTok = lastLineTok();","            if (llTok \u0026\u0026 llTok-\u003eop == '#' \u0026\u0026 llTok-\u003enext \u0026\u0026 llTok-\u003enext-\u003estr() == \"include\") {","                currentToken = readUntil(stream, location, '\u003c', '\u003e', outputList);","                if (currentToken.size() \u003c 2U)","                    return;","            }","        }","","        push_back(new Token(currentToken, location, std::isspace(stream.peekChar())));","","        if (multiline)","            location.col += currentToken.size();","        else","            location.adjust(currentToken);","    }","","    combineOperators();","}","","void simplecpp::TokenList::constFold()","{","    while (cfront()) {","        // goto last '('","        Token *tok = back();","        while (tok \u0026\u0026 tok-\u003eop != '(')","            tok = tok-\u003eprevious;","","        // no '(', goto first token","        if (!tok)","            tok = front();","","        // Constant fold expression","        constFoldUnaryNotPosNeg(tok);","        constFoldMulDivRem(tok);","        constFoldAddSub(tok);","        constFoldShift(tok);","        constFoldComparison(tok);","        constFoldBitwise(tok);","        constFoldLogicalOp(tok);","        constFoldQuestionOp(\u0026tok);","","        // If there is no '(' we are done with the constant folding","        if (tok-\u003eop != '(')","            break;","","        if (!tok-\u003enext || !tok-\u003enext-\u003enext || tok-\u003enext-\u003enext-\u003eop != ')')","            break;","","        tok = tok-\u003enext;","        deleteToken(tok-\u003eprevious);","        deleteToken(tok-\u003enext);","    }","}","","static bool isFloatSuffix(const simplecpp::Token *tok)","{","    if (!tok || tok-\u003estr().size() != 1U)","        return false;","    const char c = std::tolower(tok-\u003estr()[0]);","    return c == 'f' || c == 'l';","}","","void simplecpp::TokenList::combineOperators()","{","    std::stack\u003cbool\u003e executableScope;","    executableScope.push(false);","    for (Token *tok = front(); tok; tok = tok-\u003enext) {","        if (tok-\u003eop == '{') {","            if (executableScope.top()) {","                executableScope.push(true);","                continue;","            }","            const Token *prev = tok-\u003eprevious;","            while (prev \u0026\u0026 prev-\u003eisOneOf(\";{}()\"))","                prev = prev-\u003eprevious;","            executableScope.push(prev \u0026\u0026 prev-\u003eop == ')');","            continue;","        }","        if (tok-\u003eop == '}') {","            if (executableScope.size() \u003e 1)","                executableScope.pop();","            continue;","        }","","        if (tok-\u003eop == '.') {","            // ellipsis ...","            if (tok-\u003enext \u0026\u0026 tok-\u003enext-\u003eop == '.' \u0026\u0026 tok-\u003enext-\u003elocation.col == (tok-\u003elocation.col + 1) \u0026\u0026","                tok-\u003enext-\u003enext \u0026\u0026 tok-\u003enext-\u003enext-\u003eop == '.' \u0026\u0026 tok-\u003enext-\u003enext-\u003elocation.col == (tok-\u003elocation.col + 2)) {","                tok-\u003esetstr(\"...\");","                deleteToken(tok-\u003enext);","                deleteToken(tok-\u003enext);","                continue;","            }","            // float literals..","            if (tok-\u003eprevious \u0026\u0026 tok-\u003eprevious-\u003enumber \u0026\u0026 sameline(tok-\u003eprevious, tok) \u0026\u0026 tok-\u003eprevious-\u003estr().find_first_of(\"._\") == std::string::npos) {","                tok-\u003esetstr(tok-\u003eprevious-\u003estr() + '.');","                deleteToken(tok-\u003eprevious);","                if (sameline(tok, tok-\u003enext) \u0026\u0026 (isFloatSuffix(tok-\u003enext) || (tok-\u003enext \u0026\u0026 tok-\u003enext-\u003estartsWithOneOf(\"AaBbCcDdEeFfPp\")))) {","                    tok-\u003esetstr(tok-\u003estr() + tok-\u003enext-\u003estr());","                    deleteToken(tok-\u003enext);","                }","            }","            if (tok-\u003enext \u0026\u0026 tok-\u003enext-\u003enumber) {","                tok-\u003esetstr(tok-\u003estr() + tok-\u003enext-\u003estr());","                deleteToken(tok-\u003enext);","            }","        }","        // match: [0-9.]+E [+-] [0-9]+","        const char lastChar = tok-\u003estr()[tok-\u003estr().size() - 1];","        if (tok-\u003enumber \u0026\u0026 !isOct(tok-\u003estr()) \u0026\u0026","            ((!isHex(tok-\u003estr()) \u0026\u0026 (lastChar == 'E' || lastChar == 'e')) ||","             (isHex(tok-\u003estr()) \u0026\u0026 (lastChar == 'P' || lastChar == 'p'))) \u0026\u0026","            tok-\u003enext \u0026\u0026 tok-\u003enext-\u003eisOneOf(\"+-\") \u0026\u0026 tok-\u003enext-\u003enext \u0026\u0026 tok-\u003enext-\u003enext-\u003enumber) {","            tok-\u003esetstr(tok-\u003estr() + tok-\u003enext-\u003eop + tok-\u003enext-\u003enext-\u003estr());","            deleteToken(tok-\u003enext);","            deleteToken(tok-\u003enext);","        }","","        if (tok-\u003eop == '\\0' || !tok-\u003enext || tok-\u003enext-\u003eop == '\\0')","            continue;","        if (!sameline(tok,tok-\u003enext))","            continue;","        if (tok-\u003elocation.col + 1U != tok-\u003enext-\u003elocation.col)","            continue;","","        if (tok-\u003enext-\u003eop == '=' \u0026\u0026 tok-\u003eisOneOf(\"=!\u003c\u003e+-*/%\u0026|^\")) {","            if (tok-\u003eop == '\u0026' \u0026\u0026 !executableScope.top()) {","                // don't combine \u0026= if it is a anonymous reference parameter with default value:","                // void f(x\u0026=2)","                int indentlevel = 0;","                const Token *start = tok;","                while (indentlevel \u003e= 0 \u0026\u0026 start) {","                    if (start-\u003eop == ')')","                        ++indentlevel;","                    else if (start-\u003eop == '(')","                        --indentlevel;","                    else if (start-\u003eisOneOf(\";{}\"))","                        break;","                    start = start-\u003eprevious;","                }","                if (indentlevel == -1 \u0026\u0026 start) {","                    const Token * const ftok = start;","                    bool isFuncDecl = ftok-\u003ename;","                    while (isFuncDecl) {","                        if (!start-\u003ename \u0026\u0026 start-\u003estr() != \"::\" \u0026\u0026 start-\u003eop != '*' \u0026\u0026 start-\u003eop != '\u0026')","                            isFuncDecl = false;","                        if (!start-\u003eprevious)","                            break;","                        if (start-\u003eprevious-\u003eisOneOf(\";{}:\"))","                            break;","                        start = start-\u003eprevious;","                    }","                    isFuncDecl \u0026= start != ftok \u0026\u0026 start-\u003ename;","                    if (isFuncDecl) {","                        // TODO: we could loop through the parameters here and check if they are correct.","                        continue;","                    }","                }","            }","            tok-\u003esetstr(tok-\u003estr() + \"=\");","            deleteToken(tok-\u003enext);","        } else if ((tok-\u003eop == '|' || tok-\u003eop == '\u0026') \u0026\u0026 tok-\u003eop == tok-\u003enext-\u003eop) {","            tok-\u003esetstr(tok-\u003estr() + tok-\u003enext-\u003estr());","            deleteToken(tok-\u003enext);","        } else if (tok-\u003eop == ':' \u0026\u0026 tok-\u003enext-\u003eop == ':') {","            tok-\u003esetstr(tok-\u003estr() + tok-\u003enext-\u003estr());","            deleteToken(tok-\u003enext);","        } else if (tok-\u003eop == '-' \u0026\u0026 tok-\u003enext-\u003eop == '\u003e') {","            tok-\u003esetstr(tok-\u003estr() + tok-\u003enext-\u003estr());","            deleteToken(tok-\u003enext);","        } else if ((tok-\u003eop == '\u003c' || tok-\u003eop == '\u003e') \u0026\u0026 tok-\u003eop == tok-\u003enext-\u003eop) {","            tok-\u003esetstr(tok-\u003estr() + tok-\u003enext-\u003estr());","            deleteToken(tok-\u003enext);","            if (tok-\u003enext \u0026\u0026 tok-\u003enext-\u003eop == '=' \u0026\u0026 tok-\u003enext-\u003enext \u0026\u0026 tok-\u003enext-\u003enext-\u003eop != '=') {","                tok-\u003esetstr(tok-\u003estr() + tok-\u003enext-\u003estr());","                deleteToken(tok-\u003enext);","            }","        } else if ((tok-\u003eop == '+' || tok-\u003eop == '-') \u0026\u0026 tok-\u003eop == tok-\u003enext-\u003eop) {","            if (tok-\u003elocation.col + 1U != tok-\u003enext-\u003elocation.col)","                continue;","            if (tok-\u003eprevious \u0026\u0026 tok-\u003eprevious-\u003enumber)","                continue;","            if (tok-\u003enext-\u003enext \u0026\u0026 tok-\u003enext-\u003enext-\u003enumber)","                continue;","            tok-\u003esetstr(tok-\u003estr() + tok-\u003enext-\u003estr());","            deleteToken(tok-\u003enext);","        }","    }","}","","static const std::string COMPL(\"compl\");","static const std::string NOT(\"not\");","void simplecpp::TokenList::constFoldUnaryNotPosNeg(simplecpp::Token *tok)","{","    for (; tok \u0026\u0026 tok-\u003eop != ')'; tok = tok-\u003enext) {","        // \"not\" might be !","        if (isAlternativeUnaryOp(tok, NOT))","            tok-\u003eop = '!';","        // \"compl\" might be ~","        else if (isAlternativeUnaryOp(tok, COMPL))","            tok-\u003eop = '~';","","        if (tok-\u003eop == '!' \u0026\u0026 tok-\u003enext \u0026\u0026 tok-\u003enext-\u003enumber) {","            tok-\u003esetstr(tok-\u003enext-\u003estr() == \"0\" ? \"1\" : \"0\");","            deleteToken(tok-\u003enext);","        } else if (tok-\u003eop == '~' \u0026\u0026 tok-\u003enext \u0026\u0026 tok-\u003enext-\u003enumber) {","            tok-\u003esetstr(toString(~stringToLL(tok-\u003enext-\u003estr())));","            deleteToken(tok-\u003enext);","        } else {","            if (tok-\u003eprevious \u0026\u0026 (tok-\u003eprevious-\u003enumber || tok-\u003eprevious-\u003ename))","                continue;","            if (!tok-\u003enext || !tok-\u003enext-\u003enumber)","                continue;","            switch (tok-\u003eop) {","            case '+':","                tok-\u003esetstr(tok-\u003enext-\u003estr());","                deleteToken(tok-\u003enext);","                break;","            case '-':","                tok-\u003esetstr(tok-\u003eop + tok-\u003enext-\u003estr());","                deleteToken(tok-\u003enext);","                break;","            }","        }","    }","}","","void simplecpp::TokenList::constFoldMulDivRem(Token *tok)","{","    for (; tok \u0026\u0026 tok-\u003eop != ')'; tok = tok-\u003enext) {","        if (!tok-\u003eprevious || !tok-\u003eprevious-\u003enumber)","            continue;","        if (!tok-\u003enext || !tok-\u003enext-\u003enumber)","            continue;","","        long long result;","        if (tok-\u003eop == '*')","            result = (stringToLL(tok-\u003eprevious-\u003estr()) * stringToLL(tok-\u003enext-\u003estr()));","        else if (tok-\u003eop == '/' || tok-\u003eop == '%') {","            const long long rhs = stringToLL(tok-\u003enext-\u003estr());","            if (rhs == 0)","                throw std::overflow_error(\"division/modulo by zero\");","            const long long lhs = stringToLL(tok-\u003eprevious-\u003estr());","            if (rhs == -1 \u0026\u0026 lhs == std::numeric_limits\u003clong long\u003e::min())","                throw std::overflow_error(\"division overflow\");","            if (tok-\u003eop == '/')","                result = (lhs / rhs);","            else","                result = (lhs % rhs);","        } else","            continue;","","        tok = tok-\u003eprevious;","        tok-\u003esetstr(toString(result));","        deleteToken(tok-\u003enext);","        deleteToken(tok-\u003enext);","    }","}","","void simplecpp::TokenList::constFoldAddSub(Token *tok)","{","    for (; tok \u0026\u0026 tok-\u003eop != ')'; tok = tok-\u003enext) {","        if (!tok-\u003eprevious || !tok-\u003eprevious-\u003enumber)","            continue;","        if (!tok-\u003enext || !tok-\u003enext-\u003enumber)","            continue;","","        long long result;","        if (tok-\u003eop == '+')","            result = stringToLL(tok-\u003eprevious-\u003estr()) + stringToLL(tok-\u003enext-\u003estr());","        else if (tok-\u003eop == '-')","            result = stringToLL(tok-\u003eprevious-\u003estr()) - stringToLL(tok-\u003enext-\u003estr());","        else","            continue;","","        tok = tok-\u003eprevious;","        tok-\u003esetstr(toString(result));","        deleteToken(tok-\u003enext);","        deleteToken(tok-\u003enext);","    }","}","","void simplecpp::TokenList::constFoldShift(Token *tok)","{","    for (; tok \u0026\u0026 tok-\u003eop != ')'; tok = tok-\u003enext) {","        if (!tok-\u003eprevious || !tok-\u003eprevious-\u003enumber)","            continue;","        if (!tok-\u003enext || !tok-\u003enext-\u003enumber)","            continue;","","        long long result;","        if (tok-\u003estr() == \"\u003c\u003c\")","            result = stringToLL(tok-\u003eprevious-\u003estr()) \u003c\u003c stringToLL(tok-\u003enext-\u003estr());","        else if (tok-\u003estr() == \"\u003e\u003e\")","            result = stringToLL(tok-\u003eprevious-\u003estr()) \u003e\u003e stringToLL(tok-\u003enext-\u003estr());","        else","            continue;","","        tok = tok-\u003eprevious;","        tok-\u003esetstr(toString(result));","        deleteToken(tok-\u003enext);","        deleteToken(tok-\u003enext);","    }","}","","static const std::string NOTEQ(\"not_eq\");","void simplecpp::TokenList::constFoldComparison(Token *tok)","{","    for (; tok \u0026\u0026 tok-\u003eop != ')'; tok = tok-\u003enext) {","        if (isAlternativeBinaryOp(tok,NOTEQ))","            tok-\u003esetstr(\"!=\");","","        if (!tok-\u003estartsWithOneOf(\"\u003c\u003e=!\"))","            continue;","        if (!tok-\u003eprevious || !tok-\u003eprevious-\u003enumber)","            continue;","        if (!tok-\u003enext || !tok-\u003enext-\u003enumber)","            continue;","","        int result;","        if (tok-\u003estr() == \"==\")","            result = (stringToLL(tok-\u003eprevious-\u003estr()) == stringToLL(tok-\u003enext-\u003estr()));","        else if (tok-\u003estr() == \"!=\")","            result = (stringToLL(tok-\u003eprevious-\u003estr()) != stringToLL(tok-\u003enext-\u003estr()));","        else if (tok-\u003estr() == \"\u003e\")","            result = (stringToLL(tok-\u003eprevious-\u003estr()) \u003e stringToLL(tok-\u003enext-\u003estr()));","        else if (tok-\u003estr() == \"\u003e=\")","            result = (stringToLL(tok-\u003eprevious-\u003estr()) \u003e= stringToLL(tok-\u003enext-\u003estr()));","        else if (tok-\u003estr() == \"\u003c\")","            result = (stringToLL(tok-\u003eprevious-\u003estr()) \u003c stringToLL(tok-\u003enext-\u003estr()));","        else if (tok-\u003estr() == \"\u003c=\")","            result = (stringToLL(tok-\u003eprevious-\u003estr()) \u003c= stringToLL(tok-\u003enext-\u003estr()));","        else","            continue;","","        tok = tok-\u003eprevious;","        tok-\u003esetstr(toString(result));","        deleteToken(tok-\u003enext);","        deleteToken(tok-\u003enext);","    }","}","","static const std::string BITAND(\"bitand\");","static const std::string BITOR(\"bitor\");","static const std::string XOR(\"xor\");","void simplecpp::TokenList::constFoldBitwise(Token *tok)","{","    Token * const tok1 = tok;","    for (const char *op = \"\u0026^|\"; *op; op++) {","        const std::string* alternativeOp;","        if (*op == '\u0026')","            alternativeOp = \u0026BITAND;","        else if (*op == '|')","            alternativeOp = \u0026BITOR;","        else","            alternativeOp = \u0026XOR;","        for (tok = tok1; tok \u0026\u0026 tok-\u003eop != ')'; tok = tok-\u003enext) {","            if (tok-\u003eop != *op \u0026\u0026 !isAlternativeBinaryOp(tok, *alternativeOp))","                continue;","            if (!tok-\u003eprevious || !tok-\u003eprevious-\u003enumber)","                continue;","            if (!tok-\u003enext || !tok-\u003enext-\u003enumber)","                continue;","            long long result;","            if (*op == '\u0026')","                result = (stringToLL(tok-\u003eprevious-\u003estr()) \u0026 stringToLL(tok-\u003enext-\u003estr()));","            else if (*op == '^')","                result = (stringToLL(tok-\u003eprevious-\u003estr()) ^ stringToLL(tok-\u003enext-\u003estr()));","            else /*if (*op == '|')*/","                result = (stringToLL(tok-\u003eprevious-\u003estr()) | stringToLL(tok-\u003enext-\u003estr()));","            tok = tok-\u003eprevious;","            tok-\u003esetstr(toString(result));","            deleteToken(tok-\u003enext);","            deleteToken(tok-\u003enext);","        }","    }","}","","static const std::string AND(\"and\");","static const std::string OR(\"or\");","void simplecpp::TokenList::constFoldLogicalOp(Token *tok)","{","    for (; tok \u0026\u0026 tok-\u003eop != ')'; tok = tok-\u003enext) {","        if (tok-\u003ename) {","            if (isAlternativeBinaryOp(tok,AND))","                tok-\u003esetstr(\"\u0026\u0026\");","            else if (isAlternativeBinaryOp(tok,OR))","                tok-\u003esetstr(\"||\");","        }","        if (tok-\u003estr() != \"\u0026\u0026\" \u0026\u0026 tok-\u003estr() != \"||\")","            continue;","        if (!tok-\u003eprevious || !tok-\u003eprevious-\u003enumber)","            continue;","        if (!tok-\u003enext || !tok-\u003enext-\u003enumber)","            continue;","","        int result;","        if (tok-\u003estr() == \"||\")","            result = (stringToLL(tok-\u003eprevious-\u003estr()) || stringToLL(tok-\u003enext-\u003estr()));","        else /*if (tok-\u003estr() == \"\u0026\u0026\")*/","            result = (stringToLL(tok-\u003eprevious-\u003estr()) \u0026\u0026 stringToLL(tok-\u003enext-\u003estr()));","","        tok = tok-\u003eprevious;","        tok-\u003esetstr(toString(result));","        deleteToken(tok-\u003enext);","        deleteToken(tok-\u003enext);","    }","}","","void simplecpp::TokenList::constFoldQuestionOp(Token **tok1)","{","    bool gotoTok1 = false;","    for (Token *tok = *tok1; tok \u0026\u0026 tok-\u003eop != ')'; tok =  gotoTok1 ? *tok1 : tok-\u003enext) {","        gotoTok1 = false;","        if (tok-\u003estr() != \"?\")","            continue;","        if (!tok-\u003eprevious || !tok-\u003enext || !tok-\u003enext-\u003enext)","            throw std::runtime_error(\"invalid expression\");","        if (!tok-\u003eprevious-\u003enumber)","            continue;","        if (tok-\u003enext-\u003enext-\u003eop != ':')","            continue;","        Token * const condTok = tok-\u003eprevious;","        Token * const trueTok = tok-\u003enext;","        Token * const falseTok = trueTok-\u003enext-\u003enext;","        if (!falseTok)","            throw std::runtime_error(\"invalid expression\");","        if (condTok == *tok1)","            *tok1 = (condTok-\u003estr() != \"0\" ? trueTok : falseTok);","        deleteToken(condTok-\u003enext); // ?","        deleteToken(trueTok-\u003enext); // :","        deleteToken(condTok-\u003estr() == \"0\" ? trueTok : falseTok);","        deleteToken(condTok);","        gotoTok1 = true;","    }","}","","void simplecpp::TokenList::removeComments()","{","    Token *tok = frontToken;","    while (tok) {","        Token * const tok1 = tok;","        tok = tok-\u003enext;","        if (tok1-\u003ecomment)","            deleteToken(tok1);","    }","}","","std::string simplecpp::TokenList::readUntil(Stream \u0026stream, const Location \u0026location, const char start, const char end, OutputList *outputList)","{","    std::string ret;","    ret += start;","","    bool backslash = false;","    char ch = 0;","    while (ch != end \u0026\u0026 ch != '\\r' \u0026\u0026 ch != '\\n' \u0026\u0026 stream.good()) {","        ch = stream.readChar();","        if (backslash \u0026\u0026 ch == '\\n') {","            ch = 0;","            backslash = false;","            continue;","        }","        backslash = false;","        ret += ch;","        if (ch == '\\\\') {","            bool update_ch = false;","            char next = 0;","            do {","                next = stream.readChar();","                if (next == '\\r' || next == '\\n') {","                    ret.erase(ret.size()-1U);","                    backslash = (next == '\\r');","                    update_ch = false;","                } else if (next == '\\\\')","                    update_ch = !update_ch;","                ret += next;","            } while (next == '\\\\');","            if (update_ch)","                ch = next;","        }","    }","","    if (!stream.good() || ch != end) {","        clear();","        if (outputList) {","            Output err(files);","            err.type = Output::SYNTAX_ERROR;","            err.location = location;","            err.msg = std::string(\"No pair for character (\") + start + \"). Can't process file. File is either invalid or unicode, which is currently not supported.\";","            outputList-\u003epush_back(err);","        }","        return \"\";","    }","","    return ret;","}","","std::string simplecpp::TokenList::lastLine(int maxsize) const","{","    std::string ret;","    int count = 0;","    for (const Token *tok = cback(); ; tok = tok-\u003eprevious) {","        if (!sameline(tok, cback())) {","            break;","        }","        if (tok-\u003ecomment)","            continue;","        if (++count \u003e maxsize)","            return \"\";","        if (!ret.empty())","            ret += ' ';","        // add tokens in reverse for performance reasons","        if (tok-\u003estr()[0] == '\\\"')","            ret += \"%rts%\"; // %str%","        else if (tok-\u003enumber)","            ret += \"%mun%\"; // %num%","        else {","            ret += tok-\u003estr();","            std::reverse(ret.end() - tok-\u003estr().length(), ret.end());","        }","    }","    std::reverse(ret.begin(), ret.end());","    return ret;","}","","const simplecpp::Token* simplecpp::TokenList::lastLineTok(int maxsize) const","{","    const Token* prevTok = nullptr;","    int count = 0;","    for (const Token *tok = cback(); ; tok = tok-\u003eprevious) {","        if (!sameline(tok, cback()))","            break;","        if (tok-\u003ecomment)","            continue;","        if (++count \u003e maxsize)","            return nullptr;","        prevTok = tok;","    }","    return prevTok;","}","","bool simplecpp::TokenList::isLastLinePreprocessor(int maxsize) const","{","    const Token * const prevTok = lastLineTok(maxsize);","    return prevTok \u0026\u0026 prevTok-\u003eop == '#';","}","","unsigned int simplecpp::TokenList::fileIndex(const std::string \u0026filename)","{","    for (unsigned int i = 0; i \u003c files.size(); ++i) {","        if (files[i] == filename)","            return i;","    }","    files.push_back(filename);","    return files.size() - 1U;","}","","","namespace simplecpp {","    class Macro;","#if __cplusplus \u003e= 201103L","    using MacroMap = std::unordered_map\u003cTokenString,Macro\u003e;","#else","    typedef std::map\u003cTokenString,Macro\u003e MacroMap;","#endif","","    class Macro {","    public:","        explicit Macro(std::vector\u003cstd::string\u003e \u0026f) : nameTokDef(nullptr), valueToken(nullptr), endToken(nullptr), files(f), tokenListDefine(f), variadic(false), valueDefinedInCode_(false) {}","","        Macro(const Token *tok, std::vector\u003cstd::string\u003e \u0026f) : nameTokDef(nullptr), files(f), tokenListDefine(f), valueDefinedInCode_(true) {","            if (sameline(tok-\u003epreviousSkipComments(), tok))","                throw std::runtime_error(\"bad macro syntax\");","            if (tok-\u003eop != '#')","                throw std::runtime_error(\"bad macro syntax\");","            const Token * const hashtok = tok;","            tok = tok-\u003enext;","            if (!tok || tok-\u003estr() != DEFINE)","                throw std::runtime_error(\"bad macro syntax\");","            tok = tok-\u003enext;","            if (!tok || !tok-\u003ename || !sameline(hashtok,tok))","                throw std::runtime_error(\"bad macro syntax\");","            if (!parseDefine(tok))","                throw std::runtime_error(\"bad macro syntax\");","        }","","        Macro(const std::string \u0026name, const std::string \u0026value, std::vector\u003cstd::string\u003e \u0026f) : nameTokDef(nullptr), files(f), tokenListDefine(f), valueDefinedInCode_(false) {","            const std::string def(name + ' ' + value);","            StdCharBufStream stream(reinterpret_cast\u003cconst unsigned char*\u003e(def.data()), def.size());","            tokenListDefine.readfile(stream);","            if (!parseDefine(tokenListDefine.cfront()))","                throw std::runtime_error(\"bad macro syntax. macroname=\" + name + \" value=\" + value);","        }","","        Macro(const Macro \u0026other) : nameTokDef(nullptr), files(other.files), tokenListDefine(other.files), valueDefinedInCode_(other.valueDefinedInCode_) {","            *this = other;","        }","","        Macro \u0026operator=(const Macro \u0026other) {","            if (this != \u0026other) {","                files = other.files;","                valueDefinedInCode_ = other.valueDefinedInCode_;","                if (other.tokenListDefine.empty())","                    parseDefine(other.nameTokDef);","                else {","                    tokenListDefine = other.tokenListDefine;","                    parseDefine(tokenListDefine.cfront());","                }","                usageList = other.usageList;","            }","            return *this;","        }","","        bool valueDefinedInCode() const {","            return valueDefinedInCode_;","        }","","        /**","         * Expand macro. This will recursively expand inner macros.","         * @param output     destination tokenlist","         * @param rawtok     macro token","         * @param macros     list of macros","         * @param inputFiles the input files","         * @return token after macro","         * @throw Can throw wrongNumberOfParameters or invalidHashHash","         */","        const Token * expand(TokenList * const output,","                             const Token * rawtok,","                             const MacroMap \u0026macros,","                             std::vector\u003cstd::string\u003e \u0026inputFiles) const {","            std::set\u003cTokenString\u003e expandedmacros;","","            TokenList output2(inputFiles);","","            if (functionLike() \u0026\u0026 rawtok-\u003enext \u0026\u0026 rawtok-\u003enext-\u003eop == '(') {","                // Copy macro call to a new tokenlist with no linebreaks","                const Token * const rawtok1 = rawtok;","                TokenList rawtokens2(inputFiles);","                rawtokens2.push_back(new Token(rawtok-\u003estr(), rawtok1-\u003elocation, rawtok-\u003ewhitespaceahead));","                rawtok = rawtok-\u003enext;","                rawtokens2.push_back(new Token(rawtok-\u003estr(), rawtok1-\u003elocation, rawtok-\u003ewhitespaceahead));","                rawtok = rawtok-\u003enext;","                int par = 1;","                while (rawtok \u0026\u0026 par \u003e 0) {","                    if (rawtok-\u003eop == '(')","                        ++par;","                    else if (rawtok-\u003eop == ')')","                        --par;","                    else if (rawtok-\u003eop == '#' \u0026\u0026 !sameline(rawtok-\u003eprevious, rawtok))","                        throw Error(rawtok-\u003elocation, \"it is invalid to use a preprocessor directive as macro parameter\");","                    rawtokens2.push_back(new Token(rawtok-\u003estr(), rawtok1-\u003elocation, rawtok-\u003ewhitespaceahead));","                    rawtok = rawtok-\u003enext;","                }","                if (expand(\u0026output2, rawtok1-\u003elocation, rawtokens2.cfront(), macros, expandedmacros))","                    rawtok = rawtok1-\u003enext;","            } else {","                rawtok = expand(\u0026output2, rawtok-\u003elocation, rawtok, macros, expandedmacros);","            }","            while (output2.cback() \u0026\u0026 rawtok) {","                unsigned int par = 0;","                Token* macro2tok = output2.back();","                while (macro2tok) {","                    if (macro2tok-\u003eop == '(') {","                        if (par==0)","                            break;","                        --par;","                    } else if (macro2tok-\u003eop == ')')","                        ++par;","                    macro2tok = macro2tok-\u003eprevious;","                }","                if (macro2tok) { // macro2tok-\u003eop == '('","                    macro2tok = macro2tok-\u003eprevious;","                    expandedmacros.insert(name());","                } else if (rawtok-\u003eop == '(')","                    macro2tok = output2.back();","                if (!macro2tok || !macro2tok-\u003ename)","                    break;","                if (output2.cfront() != output2.cback() \u0026\u0026 macro2tok-\u003estr() == this-\u003ename())","                    break;","                const MacroMap::const_iterator macro = macros.find(macro2tok-\u003estr());","                if (macro == macros.end() || !macro-\u003esecond.functionLike())","                    break;","                TokenList rawtokens2(inputFiles);","                const Location loc(macro2tok-\u003elocation);","                while (macro2tok) {","                    Token * const next = macro2tok-\u003enext;","                    rawtokens2.push_back(new Token(macro2tok-\u003estr(), loc));","                    output2.deleteToken(macro2tok);","                    macro2tok = next;","                }","                par = (rawtokens2.cfront() != rawtokens2.cback()) ? 1U : 0U;","                const Token *rawtok2 = rawtok;","                for (; rawtok2; rawtok2 = rawtok2-\u003enext) {","                    rawtokens2.push_back(new Token(rawtok2-\u003estr(), loc));","                    if (rawtok2-\u003eop == '(')","                        ++par;","                    else if (rawtok2-\u003eop == ')') {","                        if (par \u003c= 1U)","                            break;","                        --par;","                    }","                }","                if (!rawtok2 || par != 1U)","                    break;","                if (macro-\u003esecond.expand(\u0026output2, rawtok-\u003elocation, rawtokens2.cfront(), macros, expandedmacros) != nullptr)","                    break;","                rawtok = rawtok2-\u003enext;","            }","            output-\u003etakeTokens(output2);","            return rawtok;","        }","","        /** macro name */","        const TokenString \u0026name() const {","            return nameTokDef-\u003estr();","        }","","        /** location for macro definition */","        const Location \u0026defineLocation() const {","            return nameTokDef-\u003elocation;","        }","","        /** how has this macro been used so far */","        const std::list\u003cLocation\u003e \u0026usage() const {","            return usageList;","        }","","        /** is this a function like macro */","        bool functionLike() const {","            return nameTokDef-\u003enext \u0026\u0026","                   nameTokDef-\u003enext-\u003eop == '(' \u0026\u0026","                   sameline(nameTokDef, nameTokDef-\u003enext) \u0026\u0026","                   nameTokDef-\u003enext-\u003elocation.col == nameTokDef-\u003elocation.col + nameTokDef-\u003estr().size();","        }","","        /** base class for errors */","        struct Error {","            Error(const Location \u0026loc, const std::string \u0026s) : location(loc), what(s) {}","            const Location location;","            const std::string what;","        };","","        /** Struct that is thrown when macro is expanded with wrong number of parameters */","        struct wrongNumberOfParameters : public Error {","            wrongNumberOfParameters(const Location \u0026loc, const std::string \u0026macroName) : Error(loc, \"Wrong number of parameters for macro \\'\" + macroName + \"\\'.\") {}","        };","","        /** Struct that is thrown when there is invalid ## usage */","        struct invalidHashHash : public Error {","            static inline std::string format(const std::string \u0026macroName, const std::string \u0026message) {","                return \"Invalid ## usage when expanding \\'\" + macroName + \"\\': \" + message;","            }","","            invalidHashHash(const Location \u0026loc, const std::string \u0026macroName, const std::string \u0026message)","                : Error(loc, format(macroName, message)) { }","","            static inline invalidHashHash unexpectedToken(const Location \u0026loc, const std::string \u0026macroName, const Token *tokenA) {","                return invalidHashHash(loc, macroName, \"Unexpected token '\"+ tokenA-\u003estr()+\"'\");","            }","","            static inline invalidHashHash cannotCombine(const Location \u0026loc, const std::string \u0026macroName, const Token *tokenA, const Token *tokenB) {","                return invalidHashHash(loc, macroName, \"Combining '\"+ tokenA-\u003estr()+ \"' and '\"+ tokenB-\u003estr() + \"' yields an invalid token.\");","            }","","            static inline invalidHashHash unexpectedNewline(const Location \u0026loc, const std::string \u0026macroName) {","                return invalidHashHash(loc, macroName, \"Unexpected newline\");","            }","","            static inline invalidHashHash universalCharacterUB(const Location \u0026loc, const std::string \u0026macroName, const Token* tokenA, const std::string\u0026 strAB) {","                return invalidHashHash(loc, macroName, \"Combining '\\\\\"+ tokenA-\u003estr()+ \"' and '\"+ strAB.substr(tokenA-\u003estr().size()) + \"' yields universal character '\\\\\" + strAB + \"'. This is undefined behavior according to C standard chapter 5.1.1.2, paragraph 4.\");","            }","        };","    private:","        /** Create new token where Token::macro is set for replaced tokens */","        Token *newMacroToken(const TokenString \u0026str, const Location \u0026loc, bool replaced, const Token *expandedFromToken=nullptr) const {","            Token *tok = new Token(str,loc);","            if (replaced)","                tok-\u003emacro = nameTokDef-\u003estr();","            if (expandedFromToken)","                tok-\u003esetExpandedFrom(expandedFromToken, this);","            return tok;","        }","","        bool parseDefine(const Token *nametoken) {","            nameTokDef = nametoken;","            variadic = false;","            if (!nameTokDef) {","                valueToken = endToken = nullptr;","                args.clear();","                return false;","            }","","            // function like macro..","            if (functionLike()) {","                args.clear();","                const Token *argtok = nameTokDef-\u003enext-\u003enext;","                while (sameline(nametoken, argtok) \u0026\u0026 argtok-\u003eop != ')') {","                    if (argtok-\u003estr() == \"...\" \u0026\u0026","                        argtok-\u003enext \u0026\u0026 argtok-\u003enext-\u003eop == ')') {","                        variadic = true;","                        if (!argtok-\u003eprevious-\u003ename)","                            args.push_back(\"__VA_ARGS__\");","                        argtok = argtok-\u003enext; // goto ')'","                        break;","                    }","                    if (argtok-\u003eop != ',')","                        args.push_back(argtok-\u003estr());","                    argtok = argtok-\u003enext;","                }","                if (!sameline(nametoken, argtok)) {","                    endToken = argtok ? argtok-\u003eprevious : argtok;","                    valueToken = nullptr;","                    return false;","                }","                valueToken = argtok ? argtok-\u003enext : nullptr;","            } else {","                args.clear();","                valueToken = nameTokDef-\u003enext;","            }","","            if (!sameline(valueToken, nameTokDef))","                valueToken = nullptr;","            endToken = valueToken;","            while (sameline(endToken, nameTokDef))","                endToken = endToken-\u003enext;","            return true;","        }","","        unsigned int getArgNum(const TokenString \u0026str) const {","            unsigned int par = 0;","            while (par \u003c args.size()) {","                if (str == args[par])","                    return par;","                par++;","            }","            return ~0U;","        }","","        std::vector\u003cconst Token *\u003e getMacroParameters(const Token *nameTokInst, bool calledInDefine) const {","            if (!nameTokInst-\u003enext || nameTokInst-\u003enext-\u003eop != '(' || !functionLike())","                return std::vector\u003cconst Token *\u003e();","","            std::vector\u003cconst Token *\u003e parametertokens;","            parametertokens.push_back(nameTokInst-\u003enext);","            unsigned int par = 0U;","            for (const Token *tok = nameTokInst-\u003enext-\u003enext; calledInDefine ? sameline(tok, nameTokInst) : (tok != nullptr); tok = tok-\u003enext) {","                if (tok-\u003eop == '(')","                    ++par;","                else if (tok-\u003eop == ')') {","                    if (par == 0U) {","                        parametertokens.push_back(tok);","                        break;","                    }","                    --par;","                } else if (par == 0U \u0026\u0026 tok-\u003eop == ',' \u0026\u0026 (!variadic || parametertokens.size() \u003c args.size()))","                    parametertokens.push_back(tok);","            }","            return parametertokens;","        }","","        const Token *appendTokens(TokenList *tokens,","                                  const Location \u0026rawloc,","                                  const Token * const lpar,","                                  const MacroMap \u0026macros,","                                  const std::set\u003cTokenString\u003e \u0026expandedmacros,","                                  const std::vector\u003cconst Token*\u003e \u0026parametertokens) const {","            if (!lpar || lpar-\u003eop != '(')","                return nullptr;","            unsigned int par = 0;","            const Token *tok = lpar;","            while (sameline(lpar, tok)) {","                if (tok-\u003eop == '#' \u0026\u0026 sameline(tok,tok-\u003enext) \u0026\u0026 tok-\u003enext-\u003eop == '#' \u0026\u0026 sameline(tok,tok-\u003enext-\u003enext)) {","                    // A##B =\u003e AB","                    tok = expandHashHash(tokens, rawloc, tok, macros, expandedmacros, parametertokens);","                } else if (tok-\u003eop == '#' \u0026\u0026 sameline(tok, tok-\u003enext) \u0026\u0026 tok-\u003enext-\u003eop != '#') {","                    tok = expandHash(tokens, rawloc, tok, expandedmacros, parametertokens);","                } else {","                    if (!expandArg(tokens, tok, rawloc, macros, expandedmacros, parametertokens)) {","                        tokens-\u003epush_back(new Token(*tok));","                        if (tok-\u003emacro.empty() \u0026\u0026 (par \u003e 0 || tok-\u003estr() != \"(\"))","                            tokens-\u003eback()-\u003emacro = name();","                    }","","                    if (tok-\u003eop == '(')","                        ++par;","                    else if (tok-\u003eop == ')') {","                        --par;","                        if (par == 0U)","                            break;","                    }","                    tok = tok-\u003enext;","                }","            }","            for (Token *tok2 = tokens-\u003efront(); tok2; tok2 = tok2-\u003enext)","                tok2-\u003elocation = lpar-\u003elocation;","            return sameline(lpar,tok) ? tok : nullptr;","        }","","        const Token * expand(TokenList * const output, const Location \u0026loc, const Token * const nameTokInst, const MacroMap \u0026macros, std::set\u003cTokenString\u003e expandedmacros) const {","            expandedmacros.insert(nameTokInst-\u003estr());","","            usageList.push_back(loc);","","            if (nameTokInst-\u003estr() == \"__FILE__\") {","                output-\u003epush_back(new Token('\\\"'+loc.file()+'\\\"', loc));","                return nameTokInst-\u003enext;","            }","            if (nameTokInst-\u003estr() == \"__LINE__\") {","                output-\u003epush_back(new Token(toString(loc.line), loc));","                return nameTokInst-\u003enext;","            }","            if (nameTokInst-\u003estr() == \"__COUNTER__\") {","                output-\u003epush_back(new Token(toString(usageList.size()-1U), loc));","                return nameTokInst-\u003enext;","            }","","            const bool calledInDefine = (loc.fileIndex != nameTokInst-\u003elocation.fileIndex ||","                                         loc.line \u003c nameTokInst-\u003elocation.line);","","            std::vector\u003cconst Token*\u003e parametertokens1(getMacroParameters(nameTokInst, calledInDefine));","","            if (functionLike()) {","                // No arguments =\u003e not macro expansion","                if (nameTokInst-\u003enext \u0026\u0026 nameTokInst-\u003enext-\u003eop != '(') {","                    output-\u003epush_back(new Token(nameTokInst-\u003estr(), loc));","                    return nameTokInst-\u003enext;","                }","","                // Parse macro-call","                if (variadic) {","                    if (parametertokens1.size() \u003c args.size()) {","                        throw wrongNumberOfParameters(nameTokInst-\u003elocation, name());","                    }","                } else {","                    if (parametertokens1.size() != args.size() + (args.empty() ? 2U : 1U))","                        throw wrongNumberOfParameters(nameTokInst-\u003elocation, name());","                }","            }","","            // If macro call uses __COUNTER__ then expand that first","            TokenList tokensparams(files);","            std::vector\u003cconst Token *\u003e parametertokens2;","            if (!parametertokens1.empty()) {","                bool counter = false;","                for (const Token *tok = parametertokens1[0]; tok != parametertokens1.back(); tok = tok-\u003enext) {","                    if (tok-\u003estr() == \"__COUNTER__\") {","                        counter = true;","                        break;","                    }","                }","","                const MacroMap::const_iterator m = macros.find(\"__COUNTER__\");","","                if (!counter || m == macros.end())","                    parametertokens2.swap(parametertokens1);","                else {","                    const Macro \u0026counterMacro = m-\u003esecond;","                    unsigned int par = 0;","                    for (const Token *tok = parametertokens1[0]; tok \u0026\u0026 par \u003c parametertokens1.size(); tok = tok-\u003enext) {","                        if (tok-\u003estr() == \"__COUNTER__\") {","                            tokensparams.push_back(new Token(toString(counterMacro.usageList.size()), tok-\u003elocation));","                            counterMacro.usageList.push_back(tok-\u003elocation);","                        } else {","                            tokensparams.push_back(new Token(*tok));","                            if (tok == parametertokens1[par]) {","                                parametertokens2.push_back(tokensparams.cback());","                                par++;","                            }","                        }","                    }","                }","            }","","            Token * const output_end_1 = output-\u003eback();","","            // expand","            for (const Token *tok = valueToken; tok != endToken;) {","                if (tok-\u003eop != '#') {","                    // A##B =\u003e AB","                    if (sameline(tok, tok-\u003enext) \u0026\u0026 tok-\u003enext \u0026\u0026 tok-\u003enext-\u003eop == '#' \u0026\u0026 tok-\u003enext-\u003enext \u0026\u0026 tok-\u003enext-\u003enext-\u003eop == '#') {","                        if (!sameline(tok, tok-\u003enext-\u003enext-\u003enext))","                            throw invalidHashHash::unexpectedNewline(tok-\u003elocation, name());","                        if (variadic \u0026\u0026 tok-\u003eop == ',' \u0026\u0026 tok-\u003enext-\u003enext-\u003enext-\u003estr() == args.back()) {","                            Token *const comma = newMacroToken(tok-\u003estr(), loc, isReplaced(expandedmacros), tok);","                            output-\u003epush_back(comma);","                            tok = expandToken(output, loc, tok-\u003enext-\u003enext-\u003enext, macros, expandedmacros, parametertokens2);","                            if (output-\u003eback() == comma)","                                output-\u003edeleteToken(comma);","                            continue;","                        }","                        TokenList new_output(files);","                        if (!expandArg(\u0026new_output, tok, parametertokens2))","                            output-\u003epush_back(newMacroToken(tok-\u003estr(), loc, isReplaced(expandedmacros), tok));","                        else if (new_output.empty()) // placemarker token","                            output-\u003epush_back(newMacroToken(\"\", loc, isReplaced(expandedmacros)));","                        else","                            for (const Token *tok2 = new_output.cfront(); tok2; tok2 = tok2-\u003enext)","                                output-\u003epush_back(newMacroToken(tok2-\u003estr(), loc, isReplaced(expandedmacros), tok2));","                        tok = tok-\u003enext;","                    } else {","                        tok = expandToken(output, loc, tok, macros, expandedmacros, parametertokens2);","                    }","                    continue;","                }","","                int numberOfHash = 1;","                const Token *hashToken = tok-\u003enext;","                while (sameline(tok,hashToken) \u0026\u0026 hashToken-\u003eop == '#') {","                    hashToken = hashToken-\u003enext;","                    ++numberOfHash;","                }","                if (numberOfHash == 4 \u0026\u0026 tok-\u003enext-\u003elocation.col + 1 == tok-\u003enext-\u003enext-\u003elocation.col) {","                    // # ## #  =\u003e ##","                    output-\u003epush_back(newMacroToken(\"##\", loc, isReplaced(expandedmacros)));","                    tok = hashToken;","                    continue;","                }","","                if (numberOfHash \u003e= 2 \u0026\u0026 tok-\u003elocation.col + 1 \u003c tok-\u003enext-\u003elocation.col) {","                    output-\u003epush_back(new Token(*tok));","                    tok = tok-\u003enext;","                    continue;","                }","","                tok = tok-\u003enext;","                if (tok == endToken) {","                    output-\u003epush_back(new Token(*tok-\u003eprevious));","                    break;","                }","                if (tok-\u003eop == '#') {","                    // A##B =\u003e AB","                    tok = expandHashHash(output, loc, tok-\u003eprevious, macros, expandedmacros, parametertokens2);","                } else {","                    // #123 =\u003e \"123\"","                    tok = expandHash(output, loc, tok-\u003eprevious, expandedmacros, parametertokens2);","                }","            }","","            if (!functionLike()) {","                for (Token *tok = output_end_1 ? output_end_1-\u003enext : output-\u003efront(); tok; tok = tok-\u003enext) {","                    tok-\u003emacro = nameTokInst-\u003estr();","                }","            }","","            if (!parametertokens1.empty())","                parametertokens1.swap(parametertokens2);","","            return functionLike() ? parametertokens2.back()-\u003enext : nameTokInst-\u003enext;","        }","","        const Token *recursiveExpandToken(TokenList *output, TokenList \u0026temp, const Location \u0026loc, const Token *tok, const MacroMap \u0026macros, const std::set\u003cTokenString\u003e \u0026expandedmacros, const std::vector\u003cconst Token*\u003e \u0026parametertokens) const {","            if (!(temp.cback() \u0026\u0026 temp.cback()-\u003ename \u0026\u0026 tok-\u003enext \u0026\u0026 tok-\u003enext-\u003eop == '(')) {","                output-\u003etakeTokens(temp);","                return tok-\u003enext;","            }","","            if (!sameline(tok, tok-\u003enext)) {","                output-\u003etakeTokens(temp);","                return tok-\u003enext;","            }","","            const MacroMap::const_iterator it = macros.find(temp.cback()-\u003estr());","            if (it == macros.end() || expandedmacros.find(temp.cback()-\u003estr()) != expandedmacros.end()) {","                output-\u003etakeTokens(temp);","                return tok-\u003enext;","            }","","            const Macro \u0026calledMacro = it-\u003esecond;","            if (!calledMacro.functionLike()) {","                output-\u003etakeTokens(temp);","                return tok-\u003enext;","            }","","            TokenList temp2(files);","            temp2.push_back(new Token(temp.cback()-\u003estr(), tok-\u003elocation));","","            const Token * const tok2 = appendTokens(\u0026temp2, loc, tok-\u003enext, macros, expandedmacros, parametertokens);","            if (!tok2)","                return tok-\u003enext;","            output-\u003etakeTokens(temp);","            output-\u003edeleteToken(output-\u003eback());","            calledMacro.expand(output, loc, temp2.cfront(), macros, expandedmacros);","            return tok2-\u003enext;","        }","","        const Token *expandToken(TokenList *output, const Location \u0026loc, const Token *tok, const MacroMap \u0026macros, const std::set\u003cTokenString\u003e \u0026expandedmacros, const std::vector\u003cconst Token*\u003e \u0026parametertokens) const {","            // Not name..","            if (!tok-\u003ename) {","                output-\u003epush_back(newMacroToken(tok-\u003estr(), loc, true, tok));","                return tok-\u003enext;","            }","","            // Macro parameter..","            {","                TokenList temp(files);","                if (tok-\u003estr() == \"__VA_OPT__\") {","                    if (sameline(tok, tok-\u003enext) \u0026\u0026 tok-\u003enext-\u003estr() == \"(\") {","                        tok = tok-\u003enext;","                        int paren = 1;","                        while (sameline(tok, tok-\u003enext)) {","                            if (tok-\u003enext-\u003estr() == \"(\")","                              ++paren;","                            else if (tok-\u003enext-\u003estr() == \")\")","                              --paren;","                            if (paren == 0)","                              return tok-\u003enext-\u003enext;","                            tok = tok-\u003enext;","                            if (parametertokens.size() \u003e args.size() \u0026\u0026 parametertokens.front()-\u003enext-\u003estr() != \")\")","                              tok = expandToken(output, loc, tok, macros, expandedmacros, parametertokens)-\u003eprevious;","                        }","                    }","                    throw Error(tok-\u003elocation, \"Missing parenthesis for __VA_OPT__(content)\");","                }","                if (expandArg(\u0026temp, tok, loc, macros, expandedmacros, parametertokens)) {","                    if (tok-\u003estr() == \"__VA_ARGS__\" \u0026\u0026 temp.empty() \u0026\u0026 output-\u003ecback() \u0026\u0026 output-\u003ecback()-\u003estr() == \",\" \u0026\u0026","                        tok-\u003enextSkipComments() \u0026\u0026 tok-\u003enextSkipComments()-\u003estr() == \")\")","                        output-\u003edeleteToken(output-\u003eback());","                    return recursiveExpandToken(output, temp, loc, tok, macros, expandedmacros, parametertokens);","                }","            }","","            // Macro..","            const MacroMap::const_iterator it = macros.find(tok-\u003estr());","            if (it != macros.end() \u0026\u0026 expandedmacros.find(tok-\u003estr()) == expandedmacros.end()) {","                std::set\u003cstd::string\u003e expandedmacros2(expandedmacros);","                expandedmacros2.insert(tok-\u003estr());","","                const Macro \u0026calledMacro = it-\u003esecond;","                if (!calledMacro.functionLike()) {","                    TokenList temp(files);","                    calledMacro.expand(\u0026temp, loc, tok, macros, expandedmacros);","                    return recursiveExpandToken(output, temp, loc, tok, macros, expandedmacros2, parametertokens);","                }","                if (!sameline(tok, tok-\u003enext) || tok-\u003enext-\u003eop != '(') {","                    output-\u003epush_back(newMacroToken(tok-\u003estr(), loc, true, tok));","                    return tok-\u003enext;","                }","                TokenList tokens(files);","                tokens.push_back(new Token(*tok));","                const Token * const tok2 = appendTokens(\u0026tokens, loc, tok-\u003enext, macros, expandedmacros, parametertokens);","                if (!tok2) {","                    output-\u003epush_back(newMacroToken(tok-\u003estr(), loc, true, tok));","                    return tok-\u003enext;","                }","                TokenList temp(files);","                calledMacro.expand(\u0026temp, loc, tokens.cfront(), macros, expandedmacros);","                return recursiveExpandToken(output, temp, loc, tok2, macros, expandedmacros2, parametertokens);","            }","","            if (tok-\u003estr() == DEFINED) {","                const Token * const tok2 = tok-\u003enext;","                const Token * const tok3 = tok2 ? tok2-\u003enext : nullptr;","                const Token * const tok4 = tok3 ? tok3-\u003enext : nullptr;","                const Token *defToken = nullptr;","                const Token *lastToken = nullptr;","                if (sameline(tok, tok4) \u0026\u0026 tok2-\u003eop == '(' \u0026\u0026 tok3-\u003ename \u0026\u0026 tok4-\u003eop == ')') {","                    defToken = tok3;","                    lastToken = tok4;","                } else if (sameline(tok,tok2) \u0026\u0026 tok2-\u003ename) {","                    defToken = lastToken = tok2;","                }","                if (defToken) {","                    std::string macroName = defToken-\u003estr();","                    if (defToken-\u003enext \u0026\u0026 defToken-\u003enext-\u003eop == '#' \u0026\u0026 defToken-\u003enext-\u003enext \u0026\u0026 defToken-\u003enext-\u003enext-\u003eop == '#' \u0026\u0026 defToken-\u003enext-\u003enext-\u003enext \u0026\u0026 defToken-\u003enext-\u003enext-\u003enext-\u003ename \u0026\u0026 sameline(defToken,defToken-\u003enext-\u003enext-\u003enext)) {","                        TokenList temp(files);","                        if (expandArg(\u0026temp, defToken, parametertokens))","                            macroName = temp.cback()-\u003estr();","                        if (expandArg(\u0026temp, defToken-\u003enext-\u003enext-\u003enext, parametertokens))","                            macroName += temp.cback()-\u003estr();","                        else","                            macroName += defToken-\u003enext-\u003enext-\u003enext-\u003estr();","                        lastToken = defToken-\u003enext-\u003enext-\u003enext;","                    }","                    const bool def = (macros.find(macroName) != macros.end());","                    output-\u003epush_back(newMacroToken(def ? \"1\" : \"0\", loc, true));","                    return lastToken-\u003enext;","                }","            }","","            output-\u003epush_back(newMacroToken(tok-\u003estr(), loc, true, tok));","            return tok-\u003enext;","        }","","        bool expandArg(TokenList *output, const Token *tok, const std::vector\u003cconst Token*\u003e \u0026parametertokens) const {","            if (!tok-\u003ename)","                return false;","","            const unsigned int argnr = getArgNum(tok-\u003estr());","            if (argnr \u003e= args.size())","                return false;","","            // empty variadic parameter","            if (variadic \u0026\u0026 argnr + 1U \u003e= parametertokens.size())","                return true;","","            for (const Token *partok = parametertokens[argnr]-\u003enext; partok != parametertokens[argnr + 1U]; partok = partok-\u003enext)","                output-\u003epush_back(new Token(*partok));","","            return true;","        }","","        bool expandArg(TokenList *output, const Token *tok, const Location \u0026loc, const MacroMap \u0026macros, const std::set\u003cTokenString\u003e \u0026expandedmacros, const std::vector\u003cconst Token*\u003e \u0026parametertokens) const {","            if (!tok-\u003ename)","                return false;","            const unsigned int argnr = getArgNum(tok-\u003estr());","            if (argnr \u003e= args.size())","                return false;","            if (variadic \u0026\u0026 argnr + 1U \u003e= parametertokens.size()) // empty variadic parameter","                return true;","            for (const Token *partok = parametertokens[argnr]-\u003enext; partok != parametertokens[argnr + 1U];) {","                const MacroMap::const_iterator it = macros.find(partok-\u003estr());","                if (it != macros.end() \u0026\u0026 !partok-\u003eisExpandedFrom(\u0026it-\u003esecond) \u0026\u0026 (partok-\u003estr() == name() || expandedmacros.find(partok-\u003estr()) == expandedmacros.end())) {","                    const std::set\u003cTokenString\u003e expandedmacros2; // temporary amnesia to allow reexpansion of currently expanding macros during argument evaluation","                    partok = it-\u003esecond.expand(output, loc, partok, macros, expandedmacros2);","                } else {","                    output-\u003epush_back(newMacroToken(partok-\u003estr(), loc, isReplaced(expandedmacros), partok));","                    output-\u003eback()-\u003emacro = partok-\u003emacro;","                    partok = partok-\u003enext;","                }","            }","            if (tok-\u003ewhitespaceahead \u0026\u0026 output-\u003eback())","                output-\u003eback()-\u003ewhitespaceahead = true;","            return true;","        }","","        /**","         * Expand #X =\u003e \"X\"","         * @param output  destination tokenlist","         * @param loc     location for expanded token","         * @param tok     The # token","         * @param expandedmacros   set with expanded macros, with this macro","         * @param parametertokens  parameters given when expanding this macro","         * @return token after the X","         */","        const Token *expandHash(TokenList *output, const Location \u0026loc, const Token *tok, const std::set\u003cTokenString\u003e \u0026expandedmacros, const std::vector\u003cconst Token*\u003e \u0026parametertokens) const {","            TokenList tokenListHash(files);","            const MacroMap macros2; // temporarily bypass macro expansion","            tok = expandToken(\u0026tokenListHash, loc, tok-\u003enext, macros2, expandedmacros, parametertokens);","            std::ostringstream ostr;","            ostr \u003c\u003c '\\\"';","            for (const Token *hashtok = tokenListHash.cfront(), *next; hashtok; hashtok = next) {","                next = hashtok-\u003enext;","                ostr \u003c\u003c hashtok-\u003estr();","                if (next \u0026\u0026 hashtok-\u003ewhitespaceahead)","                    ostr \u003c\u003c ' ';","            }","            ostr \u003c\u003c '\\\"';","            output-\u003epush_back(newMacroToken(escapeString(ostr.str()), loc, isReplaced(expandedmacros)));","            return tok;","        }","","        /**","         * Expand A##B =\u003e AB","         * The A should already be expanded. Call this when you reach the first # token","         * @param output  destination tokenlist","         * @param loc     location for expanded token","         * @param tok     first # token","         * @param macros  all macros","         * @param expandedmacros   set with expanded macros, with this macro","         * @param parametertokens  parameters given when expanding this macro","         * @return token after B","         */","        const Token *expandHashHash(TokenList *output, const Location \u0026loc, const Token *tok, const MacroMap \u0026macros, const std::set\u003cTokenString\u003e \u0026expandedmacros, const std::vector\u003cconst Token*\u003e \u0026parametertokens) const {","            Token *A = output-\u003eback();","            if (!A)","                throw invalidHashHash(tok-\u003elocation, name(), \"Missing first argument\");","            if (!sameline(tok, tok-\u003enext) || !sameline(tok, tok-\u003enext-\u003enext))","                throw invalidHashHash::unexpectedNewline(tok-\u003elocation, name());","","            const bool canBeConcatenatedWithEqual = A-\u003eisOneOf(\"+-*/%\u0026|^\") || A-\u003estr() == \"\u003c\u003c\" || A-\u003estr() == \"\u003e\u003e\";","            const bool canBeConcatenatedStringOrChar = isStringLiteral_(A-\u003estr()) || isCharLiteral_(A-\u003estr());","            if (!A-\u003ename \u0026\u0026 !A-\u003enumber \u0026\u0026 A-\u003eop != ',' \u0026\u0026 !A-\u003estr().empty() \u0026\u0026 !canBeConcatenatedWithEqual \u0026\u0026 !canBeConcatenatedStringOrChar)","                throw invalidHashHash::unexpectedToken(tok-\u003elocation, name(), A);","","            Token * const B = tok-\u003enext-\u003enext;","            if (!B-\u003ename \u0026\u0026 !B-\u003enumber \u0026\u0026 B-\u003eop \u0026\u0026 !B-\u003eisOneOf(\"#=\"))","                throw invalidHashHash::unexpectedToken(tok-\u003elocation, name(), B);","","            if ((canBeConcatenatedWithEqual \u0026\u0026 B-\u003eop != '=') ||","                (!canBeConcatenatedWithEqual \u0026\u0026 B-\u003eop == '='))","                throw invalidHashHash::cannotCombine(tok-\u003elocation, name(), A, B);","","            // Superficial check; more in-depth would in theory be possible _after_ expandArg","            if (canBeConcatenatedStringOrChar \u0026\u0026 (B-\u003enumber || !B-\u003ename))","                throw invalidHashHash::cannotCombine(tok-\u003elocation, name(), A, B);","","            TokenList tokensB(files);","            const Token *nextTok = B-\u003enext;","","            if (canBeConcatenatedStringOrChar) {","                // It seems clearer to handle this case separately even though the code is similar-ish, but we don't want to merge here.","                // TODO The question is whether the ## or varargs may still apply, and how to provoke?","                if (expandArg(\u0026tokensB, B, parametertokens)) {","                    for (Token *b = tokensB.front(); b; b = b-\u003enext)","                        b-\u003elocation = loc;","                } else {","                    tokensB.push_back(new Token(*B));","                    tokensB.back()-\u003elocation = loc;","                }","                output-\u003etakeTokens(tokensB);","            } else {","                std::string strAB;","","                const bool varargs = variadic \u0026\u0026 !args.empty() \u0026\u0026 B-\u003estr() == args[args.size()-1U];","","                if (expandArg(\u0026tokensB, B, parametertokens)) {","                    if (tokensB.empty())","                        strAB = A-\u003estr();","                    else if (varargs \u0026\u0026 A-\u003eop == ',') {","                        strAB = \",\";","                    } else {","                        strAB = A-\u003estr() + tokensB.cfront()-\u003estr();","                        tokensB.deleteToken(tokensB.front());","                    }","                } else {","                    strAB = A-\u003estr() + B-\u003estr();","                }","","                // producing universal character is undefined behavior","                if (A-\u003eprevious \u0026\u0026 A-\u003eprevious-\u003estr() == \"\\\\\") {","                    if (strAB[0] == 'u' \u0026\u0026 strAB.size() == 5)","                        throw invalidHashHash::universalCharacterUB(tok-\u003elocation, name(), A, strAB);","                    if (strAB[0] == 'U' \u0026\u0026 strAB.size() == 9)","                        throw invalidHashHash::universalCharacterUB(tok-\u003elocation, name(), A, strAB);","                }","","                if (varargs \u0026\u0026 tokensB.empty() \u0026\u0026 tok-\u003eprevious-\u003estr() == \",\")","                    output-\u003edeleteToken(A);","                else if (strAB != \",\" \u0026\u0026 macros.find(strAB) == macros.end()) {","                    A-\u003esetstr(strAB);","                    for (Token *b = tokensB.front(); b; b = b-\u003enext)","                        b-\u003elocation = loc;","                    output-\u003etakeTokens(tokensB);","                } else if (sameline(B, nextTok) \u0026\u0026 sameline(B, nextTok-\u003enext) \u0026\u0026 nextTok-\u003eop == '#' \u0026\u0026 nextTok-\u003enext-\u003eop == '#') {","                    TokenList output2(files);","                    output2.push_back(new Token(strAB, tok-\u003elocation));","                    nextTok = expandHashHash(\u0026output2, loc, nextTok, macros, expandedmacros, parametertokens);","                    output-\u003edeleteToken(A);","                    output-\u003etakeTokens(output2);","                } else {","                    output-\u003edeleteToken(A);","                    TokenList tokens(files);","                    tokens.push_back(new Token(strAB, tok-\u003elocation));","                    // for function like macros, push the (...)","                    if (tokensB.empty() \u0026\u0026 sameline(B,B-\u003enext) \u0026\u0026 B-\u003enext-\u003eop=='(') {","                        const MacroMap::const_iterator it = macros.find(strAB);","                        if (it != macros.end() \u0026\u0026 expandedmacros.find(strAB) == expandedmacros.end() \u0026\u0026 it-\u003esecond.functionLike()) {","                            const Token * const tok2 = appendTokens(\u0026tokens, loc, B-\u003enext, macros, expandedmacros, parametertokens);","                            if (tok2)","                                nextTok = tok2-\u003enext;","                        }","                    }","                    expandToken(output, loc, tokens.cfront(), macros, expandedmacros, parametertokens);","                    for (Token *b = tokensB.front(); b; b = b-\u003enext)","                        b-\u003elocation = loc;","                    output-\u003etakeTokens(tokensB);","                }","            }","","            return nextTok;","        }","","        static bool isReplaced(const std::set\u003cstd::string\u003e \u0026expandedmacros) {","            // return true if size \u003e 1","            std::set\u003cstd::string\u003e::const_iterator it = expandedmacros.begin();","            if (it == expandedmacros.end())","                return false;","            ++it;","            return (it != expandedmacros.end());","        }","","        /** name token in definition */","        const Token *nameTokDef;","","        /** arguments for macro */","        std::vector\u003cTokenString\u003e args;","","        /** first token in replacement string */","        const Token *valueToken;","","        /** token after replacement string */","        const Token *endToken;","","        /** files */","        std::vector\u003cstd::string\u003e \u0026files;","","        /** this is used for -D where the definition is not seen anywhere in code */","        TokenList tokenListDefine;","","        /** usage of this macro */","        mutable std::list\u003cLocation\u003e usageList;","","        /** is macro variadic? */","        bool variadic;","","        /** was the value of this macro actually defined in the code? */","        bool valueDefinedInCode_;","    };","}","","namespace simplecpp {","","#ifdef __CYGWIN__","    bool startsWith(const std::string \u0026str, const std::string \u0026s)","    {","        return (str.size() \u003e= s.size() \u0026\u0026 str.compare(0, s.size(), s) == 0);","    }","","    std::string convertCygwinToWindowsPath(const std::string \u0026cygwinPath)","    {","        std::string windowsPath;","","        std::string::size_type pos = 0;","        if (cygwinPath.size() \u003e= 11 \u0026\u0026 startsWith(cygwinPath, \"/cygdrive/\")) {","            const unsigned char driveLetter = cygwinPath[10];","            if (std::isalpha(driveLetter)) {","                if (cygwinPath.size() == 11) {","                    windowsPath = toupper(driveLetter);","                    windowsPath += \":\\\\\";   // volume root directory","                    pos = 11;","                } else if (cygwinPath[11] == '/') {","                    windowsPath = toupper(driveLetter);","                    windowsPath += \":\";","                    pos = 11;","                }","            }","        }","","        for (; pos \u003c cygwinPath.size(); ++pos) {","            unsigned char c = cygwinPath[pos];","            if (c == '/')","                c = '\\\\';","            windowsPath += c;","        }","","        return windowsPath;","    }","#endif","}","","#ifdef SIMPLECPP_WINDOWS","","#if __cplusplus \u003e= 201103L","using MyMutex = std::mutex;","template\u003cclass T\u003e","using MyLock = std::lock_guard\u003cT\u003e;","#else","class MyMutex {","public:","    MyMutex() {","        InitializeCriticalSection(\u0026m_criticalSection);","    }","","    ~MyMutex() {","        DeleteCriticalSection(\u0026m_criticalSection);","    }","","    CRITICAL_SECTION* lock() {","        return \u0026m_criticalSection;","    }","private:","    CRITICAL_SECTION m_criticalSection;","};","","template\u003ctypename T\u003e","class MyLock {","public:","    explicit MyLock(T\u0026 m)","        : m_mutex(m) {","        EnterCriticalSection(m_mutex.lock());","    }","","    ~MyLock() {","        LeaveCriticalSection(m_mutex.lock());","    }","","private:","    MyLock\u0026 operator=(const MyLock\u0026);","    MyLock(const MyLock\u0026);","","    T\u0026 m_mutex;","};","#endif","","class RealFileNameMap {","public:","    RealFileNameMap() {}","","    bool getCacheEntry(const std::string\u0026 path, std::string\u0026 returnPath) {","        MyLock\u003cMyMutex\u003e lock(m_mutex);","","        const std::map\u003cstd::string, std::string\u003e::iterator it = m_fileMap.find(path);","        if (it != m_fileMap.end()) {","            returnPath = it-\u003esecond;","            return true;","        }","        return false;","    }","","    void addToCache(const std::string\u0026 path, const std::string\u0026 actualPath) {","        MyLock\u003cMyMutex\u003e lock(m_mutex);","        m_fileMap[path] = actualPath;","    }","","private:","    std::map\u003cstd::string, std::string\u003e m_fileMap;","    MyMutex m_mutex;","};","","static RealFileNameMap realFileNameMap;","","static bool realFileName(const std::string \u0026f, std::string \u0026result)","{","    // are there alpha characters in last subpath?","    bool alpha = false;","    for (std::string::size_type pos = 1; pos \u003c= f.size(); ++pos) {","        const unsigned char c = f[f.size() - pos];","        if (c == '/' || c == '\\\\')","            break;","        if (std::isalpha(c)) {","            alpha = true;","            break;","        }","    }","","    // do not convert this path if there are no alpha characters (either pointless or cause wrong results for . and ..)","    if (!alpha)","        return false;","","    // Lookup filename or foldername on file system","    if (!realFileNameMap.getCacheEntry(f, result)) {","","        WIN32_FIND_DATAA FindFileData;","","#ifdef __CYGWIN__","        const std::string fConverted = simplecpp::convertCygwinToWindowsPath(f);","        const HANDLE hFind = FindFirstFileExA(fConverted.c_str(), FindExInfoBasic, \u0026FindFileData, FindExSearchNameMatch, NULL, 0);","#else","        HANDLE hFind = FindFirstFileExA(f.c_str(), FindExInfoBasic, \u0026FindFileData, FindExSearchNameMatch, NULL, 0);","#endif","","        if (INVALID_HANDLE_VALUE == hFind)","            return false;","        result = FindFileData.cFileName;","        realFileNameMap.addToCache(f, result);","        FindClose(hFind);","    }","    return true;","}","","static RealFileNameMap realFilePathMap;","","/** Change case in given path to match filesystem */","static std::string realFilename(const std::string \u0026f)","{","    std::string ret;","    ret.reserve(f.size()); // this will be the final size","    if (realFilePathMap.getCacheEntry(f, ret))","        return ret;","","    // Current subpath","    std::string subpath;","","    for (std::string::size_type pos = 0; pos \u003c f.size(); ++pos) {","        const unsigned char c = f[pos];","","        // Separator.. add subpath and separator","        if (c == '/' || c == '\\\\') {","            // if subpath is empty just add separator","            if (subpath.empty()) {","                ret += c;","                continue;","            }","","            const bool isDriveSpecification =","                (pos == 2 \u0026\u0026 subpath.size() == 2 \u0026\u0026 std::isalpha(subpath[0]) \u0026\u0026 subpath[1] == ':');","","            // Append real filename (proper case)","            std::string f2;","            if (!isDriveSpecification \u0026\u0026 realFileName(f.substr(0, pos), f2))","                ret += f2;","            else","                ret += subpath;","","            subpath.clear();","","            // Append separator","            ret += c;","        } else {","            subpath += c;","        }","    }","","    if (!subpath.empty()) {","        std::string f2;","        if (realFileName(f,f2))","            ret += f2;","        else","            ret += subpath;","    }","","    realFilePathMap.addToCache(f, ret);","    return ret;","}","","static bool isAbsolutePath(const std::string \u0026path)","{","    if (path.length() \u003e= 3 \u0026\u0026 path[0] \u003e 0 \u0026\u0026 std::isalpha(path[0]) \u0026\u0026 path[1] == ':' \u0026\u0026 (path[2] == '\\\\' || path[2] == '/'))","        return true;","    return path.length() \u003e 1U \u0026\u0026 (path[0] == '/' || path[0] == '\\\\');","}","#else","#define realFilename(f)  f","","static bool isAbsolutePath(const std::string \u0026path)","{","    return path.length() \u003e 1U \u0026\u0026 path[0] == '/';","}","#endif","","namespace simplecpp {","    /**","     * perform path simplifications for . and ..","     */","    std::string simplifyPath(std::string path)","    {","        if (path.empty())","            return path;","","        std::string::size_type pos;","","        // replace backslash separators","        std::replace(path.begin(), path.end(), '\\\\', '/');","","        const bool unc(path.compare(0,2,\"//\") == 0);","","        // replace \"//\" with \"/\"","        pos = 0;","        while ((pos = path.find(\"//\",pos)) != std::string::npos) {","            path.erase(pos,1);","        }","","        // remove \"./\"","        pos = 0;","        while ((pos = path.find(\"./\",pos)) != std::string::npos) {","            if (pos == 0 || path[pos - 1U] == '/')","                path.erase(pos,2);","            else","                pos += 2;","        }","","        // remove trailing dot if path ends with \"/.\"","        if (endsWith(path,\"/.\"))","            path.erase(path.size()-1);","","        // simplify \"..\"","        pos = 1; // don't simplify \"..\" if path starts with that","        while ((pos = path.find(\"/..\", pos)) != std::string::npos) {","            // not end of path, then string must be \"/../\"","            if (pos + 3 \u003c path.size() \u0026\u0026 path[pos + 3] != '/') {","                ++pos;","                continue;","            }","            // get previous subpath","            std::string::size_type pos1 = path.rfind('/', pos - 1U);","            if (pos1 == std::string::npos) {","                pos1 = 0;","            } else {","                pos1 += 1U;","            }","            const std::string previousSubPath = path.substr(pos1, pos - pos1);","            if (previousSubPath == \"..\") {","                // don't simplify","                ++pos;","            } else {","                // remove previous subpath and \"..\"","                path.erase(pos1, pos - pos1 + 4);","                if (path.empty())","                    path = \".\";","                // update pos","                pos = (pos1 == 0) ? 1 : (pos1 - 1);","            }","        }","","        // Remove trailing '/'?","        //if (path.size() \u003e 1 \u0026\u0026 endsWith(path, \"/\"))","        //    path.erase(path.size()-1);","","        if (unc)","            path = '/' + path;","","        // cppcheck-suppress duplicateExpressionTernary - platform-dependent implementation","        return strpbrk(path.c_str(), \"*?\") == nullptr ? realFilename(path) : path;","    }","}","","/** Evaluate sizeof(type) */","static void simplifySizeof(simplecpp::TokenList \u0026expr, const std::map\u003cstd::string, std::size_t\u003e \u0026sizeOfType)","{","    for (simplecpp::Token *tok = expr.front(); tok; tok = tok-\u003enext) {","        if (tok-\u003estr() != \"sizeof\")","            continue;","        simplecpp::Token *tok1 = tok-\u003enext;","        if (!tok1) {","            throw std::runtime_error(\"missing sizeof argument\");","        }","        simplecpp::Token *tok2 = tok1-\u003enext;","        if (!tok2) {","            throw std::runtime_error(\"missing sizeof argument\");","        }","        if (tok1-\u003eop == '(') {","            tok1 = tok1-\u003enext;","            while (tok2-\u003eop != ')') {","                tok2 = tok2-\u003enext;","                if (!tok2) {","                    throw std::runtime_error(\"invalid sizeof expression\");","                }","            }","        }","","        std::string type;","        for (simplecpp::Token *typeToken = tok1; typeToken != tok2; typeToken = typeToken-\u003enext) {","            if ((typeToken-\u003estr() == \"unsigned\" || typeToken-\u003estr() == \"signed\") \u0026\u0026 typeToken-\u003enext-\u003ename)","                continue;","            if (typeToken-\u003estr() == \"*\" \u0026\u0026 type.find('*') != std::string::npos)","                continue;","            if (!type.empty())","                type += ' ';","            type += typeToken-\u003estr();","        }","","        const std::map\u003cstd::string, std::size_t\u003e::const_iterator it = sizeOfType.find(type);","        if (it != sizeOfType.end())","            tok-\u003esetstr(toString(it-\u003esecond));","        else","            continue;","","        tok2 = tok2-\u003enext;","        while (tok-\u003enext != tok2)","            expr.deleteToken(tok-\u003enext);","    }","}","","/** Evaluate __has_include(file) */","static bool isCpp17OrLater(const simplecpp::DUI \u0026dui)","{","    const std::string std_ver = simplecpp::getCppStdString(dui.std);","    return !std_ver.empty() \u0026\u0026 (std_ver \u003e= \"201703L\");","}","","static std::string openHeader(std::ifstream \u0026f, const simplecpp::DUI \u0026dui, const std::string \u0026sourcefile, const std::string \u0026header, bool systemheader);","static void simplifyHasInclude(simplecpp::TokenList \u0026expr, const simplecpp::DUI \u0026dui)","{","    if (!isCpp17OrLater(dui))","        return;","","    for (simplecpp::Token *tok = expr.front(); tok; tok = tok-\u003enext) {","        if (tok-\u003estr() != HAS_INCLUDE)","            continue;","        simplecpp::Token *tok1 = tok-\u003enext;","        if (!tok1) {","            throw std::runtime_error(\"missing __has_include argument\");","        }","        simplecpp::Token *tok2 = tok1-\u003enext;","        if (!tok2) {","            throw std::runtime_error(\"missing __has_include argument\");","        }","        if (tok1-\u003eop == '(') {","            tok1 = tok1-\u003enext;","            while (tok2-\u003eop != ')') {","                tok2 = tok2-\u003enext;","                if (!tok2) {","                    throw std::runtime_error(\"invalid __has_include expression\");","                }","            }","        }","","        const std::string \u0026sourcefile = tok-\u003elocation.file();","        const bool systemheader = (tok1 \u0026\u0026 tok1-\u003eop == '\u003c');","        std::string header;","        if (systemheader) {","            simplecpp::Token *tok3 = tok1-\u003enext;","            if (!tok3) {","                throw std::runtime_error(\"missing __has_include closing angular bracket\");","            }","            while (tok3-\u003eop != '\u003e') {","                tok3 = tok3-\u003enext;","                if (!tok3) {","                    throw std::runtime_error(\"invalid __has_include expression\");","                }","            }","","            for (simplecpp::Token *headerToken = tok1-\u003enext; headerToken != tok3; headerToken = headerToken-\u003enext)","                header += headerToken-\u003estr();","            // cppcheck-suppress selfAssignment - platform-dependent implementation","            header = realFilename(header);","        }","        else {","            header = realFilename(tok1-\u003estr().substr(1U, tok1-\u003estr().size() - 2U));","        }","        std::ifstream f;","        const std::string header2 = openHeader(f,dui,sourcefile,header,systemheader);","        tok-\u003esetstr(header2.empty() ? \"0\" : \"1\");","","        tok2 = tok2-\u003enext;","        while (tok-\u003enext != tok2)","            expr.deleteToken(tok-\u003enext);","    }","}","","static const char * const altopData[] = {\"and\",\"or\",\"bitand\",\"bitor\",\"compl\",\"not\",\"not_eq\",\"xor\"};","static const std::set\u003cstd::string\u003e altop(\u0026altopData[0], \u0026altopData[8]);","static void simplifyName(simplecpp::TokenList \u0026expr)","{","    for (simplecpp::Token *tok = expr.front(); tok; tok = tok-\u003enext) {","        if (tok-\u003ename) {","            if (altop.find(tok-\u003estr()) != altop.end()) {","                bool alt;","                if (tok-\u003estr() == \"not\" || tok-\u003estr() == \"compl\") {","                    alt = isAlternativeUnaryOp(tok,tok-\u003estr());","                } else {","                    alt = isAlternativeBinaryOp(tok,tok-\u003estr());","                }","                if (alt)","                    continue;","            }","            tok-\u003esetstr(\"0\");","        }","    }","}","","/*"," * Reads at least minlen and at most maxlen digits (inc. prefix) in base base"," * from s starting at position pos and converts them to a"," * unsigned long long value, updating pos to point to the first"," * unused element of s."," * Returns ULLONG_MAX if the result is not representable and"," * throws if the above requirements were not possible to satisfy."," */","static unsigned long long stringToULLbounded(","    const std::string\u0026 s,","    std::size_t\u0026 pos,","    int base = 0,","    std::ptrdiff_t minlen = 1,","    std::size_t maxlen = std::string::npos",")","{","    const std::string sub = s.substr(pos, maxlen);","    const char * const start = sub.c_str();","    char* end;","    const unsigned long long value = std::strtoull(start, \u0026end, base);","    pos += end - start;","    if (end - start \u003c minlen)","        throw std::runtime_error(\"expected digit\");","    return value;","}","","/* Converts character literal (including prefix, but not ud-suffix)"," * to long long value."," *"," * Assumes ASCII-compatible single-byte encoded str for narrow literals"," * and UTF-8 otherwise."," *"," * For target assumes"," * - execution character set encoding matching str"," * - UTF-32 execution wide-character set encoding"," * - requirements for __STDC_UTF_16__, __STDC_UTF_32__ and __STDC_ISO_10646__ satisfied"," * - char16_t is 16bit wide"," * - char32_t is 32bit wide"," * - wchar_t is 32bit wide and unsigned"," * - matching char signedness to host"," * - matching sizeof(int) to host"," *"," * For host assumes"," * - ASCII-compatible execution character set"," *"," * For host and target assumes"," * - CHAR_BIT == 8"," * - two's complement"," *"," * Implements multi-character narrow literals according to GCC's behavior,"," * except multi code unit universal character names are not supported."," * Multi-character wide literals are not supported."," * Limited support of universal character names for non-UTF-8 execution character set encodings."," */","long long simplecpp::characterLiteralToLL(const std::string\u0026 str)","{","    // default is wide/utf32","    bool narrow = false;","    bool utf8 = false;","    bool utf16 = false;","","    std::size_t pos;","","    if (!str.empty() \u0026\u0026 str[0] == '\\'') {","        narrow = true;","        pos = 1;","    } else if (str.size() \u003e= 2 \u0026\u0026 str[0] == 'u' \u0026\u0026 str[1] == '\\'') {","        utf16 = true;","        pos = 2;","    } else if (str.size() \u003e= 3 \u0026\u0026 str[0] == 'u' \u0026\u0026 str[1] == '8' \u0026\u0026 str[2] == '\\'') {","        utf8 = true;","        pos = 3;","    } else if (str.size() \u003e= 2 \u0026\u0026 (str[0] == 'L' || str[0] == 'U') \u0026\u0026 str[1] == '\\'') {","        pos = 2;","    } else","        throw std::runtime_error(\"expected a character literal\");","","    unsigned long long multivalue = 0;","","    std::size_t nbytes = 0;","","    while (pos + 1 \u003c str.size()) {","        if (str[pos] == '\\'' || str[pos] == '\\n')","            throw std::runtime_error(\"raw single quotes and newlines not allowed in character literals\");","","        if (nbytes \u003e= 1 \u0026\u0026 !narrow)","            throw std::runtime_error(\"multiple characters only supported in narrow character literals\");","","        unsigned long long value;","","        if (str[pos] == '\\\\') {","            pos++;","            const char escape = str[pos++];","","            if (pos \u003e= str.size())","                throw std::runtime_error(\"unexpected end of character literal\");","","            switch (escape) {","            // obscure GCC extensions","            case '%':","            case '(':","            case '[':","            case '{':","            // standard escape sequences","            case '\\'':","            case '\"':","            case '?':","            case '\\\\':","                value = static_cast\u003cunsigned char\u003e(escape);","                break;","","            case 'a':","                value = static_cast\u003cunsigned char\u003e('\\a');","                break;","            case 'b':","                value = static_cast\u003cunsigned char\u003e('\\b');","                break;","            case 'f':","                value = static_cast\u003cunsigned char\u003e('\\f');","                break;","            case 'n':","                value = static_cast\u003cunsigned char\u003e('\\n');","                break;","            case 'r':","                value = static_cast\u003cunsigned char\u003e('\\r');","                break;","            case 't':","                value = static_cast\u003cunsigned char\u003e('\\t');","                break;","            case 'v':","                value = static_cast\u003cunsigned char\u003e('\\v');","                break;","","            // GCC extension for ESC character","            case 'e':","            case 'E':","                value = static_cast\u003cunsigned char\u003e('\\x1b');","                break;","","            case '0':","            case '1':","            case '2':","            case '3':","            case '4':","            case '5':","            case '6':","            case '7':","                // octal escape sequences consist of 1 to 3 digits","                value = stringToULLbounded(str, --pos, 8, 1, 3);","                break;","","            case 'x':","                // hexadecimal escape sequences consist of at least 1 digit","                value = stringToULLbounded(str, pos, 16);","                break;","","            case 'u':","            case 'U': {","                // universal character names have exactly 4 or 8 digits","                const std::size_t ndigits = (escape == 'u' ? 4 : 8);","                value = stringToULLbounded(str, pos, 16, ndigits, ndigits);","","                // UTF-8 encodes code points above 0x7f in multiple code units","                // code points above 0x10ffff are not allowed","                if (((narrow || utf8) \u0026\u0026 value \u003e 0x7f) || (utf16 \u0026\u0026 value \u003e 0xffff) || value \u003e 0x10ffff)","                    throw std::runtime_error(\"code point too large\");","","                if (value \u003e= 0xd800 \u0026\u0026 value \u003c= 0xdfff)","                    throw std::runtime_error(\"surrogate code points not allowed in universal character names\");","","                break;","            }","","            default:","                throw std::runtime_error(\"invalid escape sequence\");","            }","        } else {","            value = static_cast\u003cunsigned char\u003e(str[pos++]);","","            if (!narrow \u0026\u0026 value \u003e= 0x80) {","                // Assuming this is a UTF-8 encoded code point.","                // This decoder may not completely validate the input.","                // Noncharacters are neither rejected nor replaced.","","                int additional_bytes;","                if (value \u003e= 0xf5)  // higher values would result in code points above 0x10ffff","                    throw std::runtime_error(\"assumed UTF-8 encoded source, but sequence is invalid\");","                if (value \u003e= 0xf0)","                    additional_bytes = 3;","                else if (value \u003e= 0xe0)","                    additional_bytes = 2;","                else if (value \u003e= 0xc2) // 0xc0 and 0xc1 are always overlong 2-bytes encodings","                    additional_bytes = 1;","                else","                    throw std::runtime_error(\"assumed UTF-8 encoded source, but sequence is invalid\");","","                value \u0026= (1 \u003c\u003c (6 - additional_bytes)) - 1;","","                while (additional_bytes--) {","                    if (pos + 1 \u003e= str.size())","                        throw std::runtime_error(\"assumed UTF-8 encoded source, but character literal ends unexpectedly\");","","                    const unsigned char c = str[pos++];","","                    if (((c \u003e\u003e 6) != 2)    // ensure c has form 0xb10xxxxxx","                        || (!value \u0026\u0026 additional_bytes == 1 \u0026\u0026 c \u003c 0xa0)    // overlong 3-bytes encoding","                        || (!value \u0026\u0026 additional_bytes == 2 \u0026\u0026 c \u003c 0x90))   // overlong 4-bytes encoding","                        throw std::runtime_error(\"assumed UTF-8 encoded source, but sequence is invalid\");","","                    value = (value \u003c\u003c 6) | (c \u0026 ((1 \u003c\u003c 7) - 1));","                }","","                if (value \u003e= 0xd800 \u0026\u0026 value \u003c= 0xdfff)","                    throw std::runtime_error(\"assumed UTF-8 encoded source, but sequence is invalid\");","","                if ((utf8 \u0026\u0026 value \u003e 0x7f) || (utf16 \u0026\u0026 value \u003e 0xffff) || value \u003e 0x10ffff)","                    throw std::runtime_error(\"code point too large\");","            }","        }","","        if (((narrow || utf8) \u0026\u0026 value \u003e std::numeric_limits\u003cunsigned char\u003e::max()) || (utf16 \u0026\u0026 value \u003e\u003e 16) || value \u003e\u003e 32)","            throw std::runtime_error(\"numeric escape sequence too large\");","","        multivalue \u003c\u003c= CHAR_BIT;","        multivalue |= value;","        nbytes++;","    }","","    if (pos + 1 != str.size() || str[pos] != '\\'')","        throw std::runtime_error(\"missing closing quote in character literal\");","","    if (!nbytes)","        throw std::runtime_error(\"empty character literal\");","","    // ordinary narrow character literal's value is determined by (possibly signed) char","    if (narrow \u0026\u0026 nbytes == 1)","        return static_cast\u003cchar\u003e(multivalue);","","    // while multi-character literal's value is determined by (signed) int","    if (narrow)","        return static_cast\u003cint\u003e(multivalue);","","    // All other cases are unsigned. Since long long is at least 64bit wide,","    // while the literals at most 32bit wide, the conversion preserves all values.","    return multivalue;","}","","static void simplifyNumbers(simplecpp::TokenList \u0026expr)","{","    for (simplecpp::Token *tok = expr.front(); tok; tok = tok-\u003enext) {","        if (tok-\u003estr().size() == 1U)","            continue;","        if (tok-\u003estr().compare(0,2,\"0x\") == 0)","            tok-\u003esetstr(toString(stringToULL(tok-\u003estr())));","        else if (!tok-\u003enumber \u0026\u0026 tok-\u003estr().find('\\'') != std::string::npos)","            tok-\u003esetstr(toString(simplecpp::characterLiteralToLL(tok-\u003estr())));","    }","}","","static void simplifyComments(simplecpp::TokenList \u0026expr)","{","    for (simplecpp::Token *tok = expr.front(); tok;) {","        simplecpp::Token * const d = tok;","        tok = tok-\u003enext;","        if (d-\u003ecomment)","            expr.deleteToken(d);","    }","}","","static long long evaluate(simplecpp::TokenList \u0026expr, const simplecpp::DUI \u0026dui, const std::map\u003cstd::string, std::size_t\u003e \u0026sizeOfType)","{","    simplifyComments(expr);","    simplifySizeof(expr, sizeOfType);","    simplifyHasInclude(expr, dui);","    simplifyName(expr);","    simplifyNumbers(expr);","    expr.constFold();","    // TODO: handle invalid expressions","    return expr.cfront() \u0026\u0026 expr.cfront() == expr.cback() \u0026\u0026 expr.cfront()-\u003enumber ? stringToLL(expr.cfront()-\u003estr()) : 0LL;","}","","static const simplecpp::Token *gotoNextLine(const simplecpp::Token *tok)","{","    const unsigned int line = tok-\u003elocation.line;","    const unsigned int file = tok-\u003elocation.fileIndex;","    while (tok \u0026\u0026 tok-\u003elocation.line == line \u0026\u0026 tok-\u003elocation.fileIndex == file)","        tok = tok-\u003enext;","    return tok;","}","","#ifdef SIMPLECPP_WINDOWS","","class NonExistingFilesCache {","public:","    NonExistingFilesCache() {}","","    bool contains(const std::string\u0026 path) {","        MyLock\u003cMyMutex\u003e lock(m_mutex);","        return (m_pathSet.find(path) != m_pathSet.end());","    }","","    void add(const std::string\u0026 path) {","        MyLock\u003cMyMutex\u003e lock(m_mutex);","        m_pathSet.insert(path);","    }","","    void clear() {","        MyLock\u003cMyMutex\u003e lock(m_mutex);","        m_pathSet.clear();","    }","","private:","    std::set\u003cstd::string\u003e m_pathSet;","    MyMutex m_mutex;","};","","static NonExistingFilesCache nonExistingFilesCache;","","#endif","","static std::string openHeader(std::ifstream \u0026f, const std::string \u0026path)","{","    std::string simplePath = simplecpp::simplifyPath(path);","#ifdef SIMPLECPP_WINDOWS","    if (nonExistingFilesCache.contains(simplePath))","        return \"\";  // file is known not to exist, skip expensive file open call","#endif","    f.open(simplePath.c_str());","    if (f.is_open())","        return simplePath;","#ifdef SIMPLECPP_WINDOWS","    nonExistingFilesCache.add(simplePath);","#endif","    return \"\";","}","","static std::string getRelativeFileName(const std::string \u0026sourcefile, const std::string \u0026header)","{","    if (sourcefile.find_first_of(\"\\\\/\") != std::string::npos)","        return simplecpp::simplifyPath(sourcefile.substr(0, sourcefile.find_last_of(\"\\\\/\") + 1U) + header);","    return simplecpp::simplifyPath(header);","}","","static std::string openHeaderRelative(std::ifstream \u0026f, const std::string \u0026sourcefile, const std::string \u0026header)","{","    return openHeader(f, getRelativeFileName(sourcefile, header));","}","","static std::string getIncludePathFileName(const std::string \u0026includePath, const std::string \u0026header)","{","    std::string path = includePath;","    if (!path.empty() \u0026\u0026 path[path.size()-1U]!='/' \u0026\u0026 path[path.size()-1U]!='\\\\')","        path += '/';","    return path + header;","}","","static std::string openHeaderIncludePath(std::ifstream \u0026f, const simplecpp::DUI \u0026dui, const std::string \u0026header)","{","    for (std::list\u003cstd::string\u003e::const_iterator it = dui.includePaths.begin(); it != dui.includePaths.end(); ++it) {","        std::string simplePath = openHeader(f, getIncludePathFileName(*it, header));","        if (!simplePath.empty())","            return simplePath;","    }","    return \"\";","}","","static std::string openHeader(std::ifstream \u0026f, const simplecpp::DUI \u0026dui, const std::string \u0026sourcefile, const std::string \u0026header, bool systemheader)","{","    if (isAbsolutePath(header))","        return openHeader(f, header);","","    std::string ret;","","    if (systemheader) {","        ret = openHeaderIncludePath(f, dui, header);","        return ret;","    }","","    ret = openHeaderRelative(f, sourcefile, header);","    if (ret.empty())","        return openHeaderIncludePath(f, dui, header);","    return ret;","}","","static std::string getFileName(const std::map\u003cstd::string, simplecpp::TokenList *\u003e \u0026filedata, const std::string \u0026sourcefile, const std::string \u0026header, const simplecpp::DUI \u0026dui, bool systemheader)","{","    if (filedata.empty()) {","        return \"\";","    }","    if (isAbsolutePath(header)) {","        return (filedata.find(header) != filedata.end()) ? simplecpp::simplifyPath(header) : \"\";","    }","","    if (!systemheader) {","        const std::string relativeFilename = getRelativeFileName(sourcefile, header);","        if (filedata.find(relativeFilename) != filedata.end())","            return relativeFilename;","    }","","    for (std::list\u003cstd::string\u003e::const_iterator it = dui.includePaths.begin(); it != dui.includePaths.end(); ++it) {","        std::string s = simplecpp::simplifyPath(getIncludePathFileName(*it, header));","        if (filedata.find(s) != filedata.end())","            return s;","    }","","    if (systemheader \u0026\u0026 filedata.find(header) != filedata.end())","        return header;","","    return \"\";","}","","static bool hasFile(const std::map\u003cstd::string, simplecpp::TokenList *\u003e \u0026filedata, const std::string \u0026sourcefile, const std::string \u0026header, const simplecpp::DUI \u0026dui, bool systemheader)","{","    return !getFileName(filedata, sourcefile, header, dui, systemheader).empty();","}","","std::map\u003cstd::string, simplecpp::TokenList*\u003e simplecpp::load(const simplecpp::TokenList \u0026rawtokens, std::vector\u003cstd::string\u003e \u0026filenames, const simplecpp::DUI \u0026dui, simplecpp::OutputList *outputList)","{","#ifdef SIMPLECPP_WINDOWS","    if (dui.clearIncludeCache)","        nonExistingFilesCache.clear();","#endif","","    std::map\u003cstd::string, simplecpp::TokenList*\u003e ret;","","    std::list\u003cconst Token *\u003e filelist;","","    // -include files","    for (std::list\u003cstd::string\u003e::const_iterator it = dui.includes.begin(); it != dui.includes.end(); ++it) {","        const std::string \u0026filename = realFilename(*it);","","        if (ret.find(filename) != ret.end())","            continue;","","        std::ifstream fin(filename.c_str());","        if (!fin.is_open()) {","            if (outputList) {","                simplecpp::Output err(filenames);","                err.type = simplecpp::Output::EXPLICIT_INCLUDE_NOT_FOUND;","                err.location = Location(filenames);","                err.msg = \"Can not open include file '\" + filename + \"' that is explicitly included.\";","                outputList-\u003epush_back(err);","            }","            continue;","        }","        fin.close();","","        TokenList *tokenlist = new TokenList(filename, filenames, outputList);","        if (!tokenlist-\u003efront()) {","            delete tokenlist;","            continue;","        }","","        if (dui.removeComments)","            tokenlist-\u003eremoveComments();","        ret[filename] = tokenlist;","        filelist.push_back(tokenlist-\u003efront());","    }","","    for (const Token *rawtok = rawtokens.cfront(); rawtok || !filelist.empty(); rawtok = rawtok ? rawtok-\u003enext : nullptr) {","        if (rawtok == nullptr) {","            rawtok = filelist.back();","            filelist.pop_back();","        }","","        if (rawtok-\u003eop != '#' || sameline(rawtok-\u003epreviousSkipComments(), rawtok))","            continue;","","        rawtok = rawtok-\u003enextSkipComments();","        if (!rawtok || rawtok-\u003estr() != INCLUDE)","            continue;","","        const std::string \u0026sourcefile = rawtok-\u003elocation.file();","","        const Token * const htok = rawtok-\u003enextSkipComments();","        if (!sameline(rawtok, htok))","            continue;","","        const bool systemheader = (htok-\u003estr()[0] == '\u003c');","        const std::string header(realFilename(htok-\u003estr().substr(1U, htok-\u003estr().size() - 2U)));","        if (hasFile(ret, sourcefile, header, dui, systemheader))","            continue;","","        std::ifstream f;","        const std::string header2 = openHeader(f,dui,sourcefile,header,systemheader);","        if (!f.is_open())","            continue;","        f.close();","","        TokenList *tokens = new TokenList(header2, filenames, outputList);","        if (dui.removeComments)","            tokens-\u003eremoveComments();","        ret[header2] = tokens;","        if (tokens-\u003efront())","            filelist.push_back(tokens-\u003efront());","    }","","    return ret;","}","","static bool preprocessToken(simplecpp::TokenList \u0026output, const simplecpp::Token **tok1, simplecpp::MacroMap \u0026macros, std::vector\u003cstd::string\u003e \u0026files, simplecpp::OutputList *outputList)","{","    const simplecpp::Token * const tok = *tok1;","    const simplecpp::MacroMap::const_iterator it = macros.find(tok-\u003estr());","    if (it != macros.end()) {","        simplecpp::TokenList value(files);","        try {","            *tok1 = it-\u003esecond.expand(\u0026value, tok, macros, files);","        } catch (simplecpp::Macro::Error \u0026err) {","            if (outputList) {","                simplecpp::Output out(files);","                out.type = simplecpp::Output::SYNTAX_ERROR;","                out.location = err.location;","                out.msg = \"failed to expand \\'\" + tok-\u003estr() + \"\\', \" + err.what;","                outputList-\u003epush_back(out);","            }","            return false;","        }","        output.takeTokens(value);","    } else {","        if (!tok-\u003ecomment)","            output.push_back(new simplecpp::Token(*tok));","        *tok1 = tok-\u003enext;","    }","    return true;","}","","static void getLocaltime(struct tm \u0026ltime)","{","    time_t t;","    time(\u0026t);","#ifndef _WIN32","    // NOLINTNEXTLINE(misc-include-cleaner) - false positive","    localtime_r(\u0026t, \u0026ltime);","#else","    localtime_s(\u0026ltime, \u0026t);","#endif","}","","static std::string getDateDefine(const struct tm *timep)","{","    char buf[] = \"??? ?? ????\";","    strftime(buf, sizeof(buf), \"%b %d %Y\", timep);","    return std::string(\"\\\"\").append(buf).append(\"\\\"\");","}","","static std::string getTimeDefine(const struct tm *timep)","{","    char buf[] = \"??:??:??\";","    strftime(buf, sizeof(buf), \"%T\", timep);","    return std::string(\"\\\"\").append(buf).append(\"\\\"\");","}","","void simplecpp::preprocess(simplecpp::TokenList \u0026output, const simplecpp::TokenList \u0026rawtokens, std::vector\u003cstd::string\u003e \u0026files, std::map\u003cstd::string, simplecpp::TokenList *\u003e \u0026filedata, const simplecpp::DUI \u0026dui, simplecpp::OutputList *outputList, std::list\u003csimplecpp::MacroUsage\u003e *macroUsage, std::list\u003csimplecpp::IfCond\u003e *ifCond)","{","#ifdef SIMPLECPP_WINDOWS","    if (dui.clearIncludeCache)","        nonExistingFilesCache.clear();","#endif","","    std::map\u003cstd::string, std::size_t\u003e sizeOfType(rawtokens.sizeOfType);","    sizeOfType.insert(std::make_pair(\"char\", sizeof(char)));","    sizeOfType.insert(std::make_pair(\"short\", sizeof(short)));","    sizeOfType.insert(std::make_pair(\"short int\", sizeOfType[\"short\"]));","    sizeOfType.insert(std::make_pair(\"int\", sizeof(int)));","    sizeOfType.insert(std::make_pair(\"long\", sizeof(long)));","    sizeOfType.insert(std::make_pair(\"long int\", sizeOfType[\"long\"]));","    sizeOfType.insert(std::make_pair(\"long long\", sizeof(long long)));","    sizeOfType.insert(std::make_pair(\"float\", sizeof(float)));","    sizeOfType.insert(std::make_pair(\"double\", sizeof(double)));","    sizeOfType.insert(std::make_pair(\"long double\", sizeof(long double)));","    sizeOfType.insert(std::make_pair(\"char *\", sizeof(char *)));","    sizeOfType.insert(std::make_pair(\"short *\", sizeof(short *)));","    sizeOfType.insert(std::make_pair(\"short int *\", sizeOfType[\"short *\"]));","    sizeOfType.insert(std::make_pair(\"int *\", sizeof(int *)));","    sizeOfType.insert(std::make_pair(\"long *\", sizeof(long *)));","    sizeOfType.insert(std::make_pair(\"long int *\", sizeOfType[\"long *\"]));","    sizeOfType.insert(std::make_pair(\"long long *\", sizeof(long long *)));","    sizeOfType.insert(std::make_pair(\"float *\", sizeof(float *)));","    sizeOfType.insert(std::make_pair(\"double *\", sizeof(double *)));","    sizeOfType.insert(std::make_pair(\"long double *\", sizeof(long double *)));","","    // use a dummy vector for the macros because as this is not part of the file and would add an empty entry - e.g. /usr/include/poll.h","    std::vector\u003cstd::string\u003e dummy;","","    const bool hasInclude = isCpp17OrLater(dui);","    MacroMap macros;","    for (std::list\u003cstd::string\u003e::const_iterator it = dui.defines.begin(); it != dui.defines.end(); ++it) {","        const std::string \u0026macrostr = *it;","        const std::string::size_type eq = macrostr.find('=');","        const std::string::size_type par = macrostr.find('(');","        const std::string macroname = macrostr.substr(0, std::min(eq,par));","        if (dui.undefined.find(macroname) != dui.undefined.end())","            continue;","        const std::string lhs(macrostr.substr(0,eq));","        const std::string rhs(eq==std::string::npos ? std::string(\"1\") : macrostr.substr(eq+1));","        const Macro macro(lhs, rhs, dummy);","        macros.insert(std::pair\u003cTokenString,Macro\u003e(macro.name(), macro));","    }","","    macros.insert(std::make_pair(\"__FILE__\", Macro(\"__FILE__\", \"__FILE__\", dummy)));","    macros.insert(std::make_pair(\"__LINE__\", Macro(\"__LINE__\", \"__LINE__\", dummy)));","    macros.insert(std::make_pair(\"__COUNTER__\", Macro(\"__COUNTER__\", \"__COUNTER__\", dummy)));","    struct tm ltime = {};","    getLocaltime(ltime);","    macros.insert(std::make_pair(\"__DATE__\", Macro(\"__DATE__\", getDateDefine(\u0026ltime), dummy)));","    macros.insert(std::make_pair(\"__TIME__\", Macro(\"__TIME__\", getTimeDefine(\u0026ltime), dummy)));","","    if (!dui.std.empty()) {","        const cstd_t c_std = simplecpp::getCStd(dui.std);","        if (c_std != CUnknown) {","            const std::string std_def = simplecpp::getCStdString(c_std);","            if (!std_def.empty())","                macros.insert(std::make_pair(\"__STDC_VERSION__\", Macro(\"__STDC_VERSION__\", std_def, dummy)));","        } else {","            const cppstd_t cpp_std = simplecpp::getCppStd(dui.std);","            if (cpp_std == CPPUnknown) {","                if (outputList) {","                    simplecpp::Output err(files);","                    err.type = Output::DUI_ERROR;","                    err.msg = \"unknown standard specified: '\" + dui.std + \"'\";","                    outputList-\u003epush_back(err);","                }","                output.clear();","                return;","            }","            const std::string std_def = simplecpp::getCppStdString(cpp_std);","            if (!std_def.empty())","                macros.insert(std::make_pair(\"__cplusplus\", Macro(\"__cplusplus\", std_def, dummy)));","        }","    }","","    // True =\u003e code in current #if block should be kept","    // ElseIsTrue =\u003e code in current #if block should be dropped. the code in the #else should be kept.","    // AlwaysFalse =\u003e drop all code in #if and #else","    enum IfState { True, ElseIsTrue, AlwaysFalse };","    std::stack\u003cint\u003e ifstates;","    ifstates.push(True);","","    std::stack\u003cconst Token *\u003e includetokenstack;","","    std::set\u003cstd::string\u003e pragmaOnce;","","    includetokenstack.push(rawtokens.cfront());","    for (std::list\u003cstd::string\u003e::const_iterator it = dui.includes.begin(); it != dui.includes.end(); ++it) {","        const std::map\u003cstd::string, TokenList*\u003e::const_iterator f = filedata.find(*it);","        if (f != filedata.end())","            includetokenstack.push(f-\u003esecond-\u003ecfront());","    }","","    std::map\u003cstd::string, std::list\u003cLocation\u003e \u003e maybeUsedMacros;","","    for (const Token *rawtok = nullptr; rawtok || !includetokenstack.empty();) {","        if (rawtok == nullptr) {","            rawtok = includetokenstack.top();","            includetokenstack.pop();","            continue;","        }","","        if (rawtok-\u003eop == '#' \u0026\u0026 !sameline(rawtok-\u003epreviousSkipComments(), rawtok)) {","            if (!sameline(rawtok, rawtok-\u003enext)) {","                rawtok = rawtok-\u003enext;","                continue;","            }","            rawtok = rawtok-\u003enext;","            if (!rawtok-\u003ename) {","                rawtok = gotoNextLine(rawtok);","                continue;","            }","","            if (ifstates.size() \u003c= 1U \u0026\u0026 (rawtok-\u003estr() == ELIF || rawtok-\u003estr() == ELSE || rawtok-\u003estr() == ENDIF)) {","                if (outputList) {","                    simplecpp::Output err(files);","                    err.type = Output::SYNTAX_ERROR;","                    err.location = rawtok-\u003elocation;","                    err.msg = \"#\" + rawtok-\u003estr() + \" without #if\";","                    outputList-\u003epush_back(err);","                }","                output.clear();","                return;","            }","","            if (ifstates.top() == True \u0026\u0026 (rawtok-\u003estr() == ERROR || rawtok-\u003estr() == WARNING)) {","                if (outputList) {","                    simplecpp::Output err(rawtok-\u003elocation.files);","                    err.type = rawtok-\u003estr() == ERROR ? Output::ERROR : Output::WARNING;","                    err.location = rawtok-\u003elocation;","                    for (const Token *tok = rawtok-\u003enext; tok \u0026\u0026 sameline(rawtok,tok); tok = tok-\u003enext) {","                        if (!err.msg.empty() \u0026\u0026 isNameChar(tok-\u003estr()[0]))","                            err.msg += ' ';","                        err.msg += tok-\u003estr();","                    }","                    err.msg = '#' + rawtok-\u003estr() + ' ' + err.msg;","                    outputList-\u003epush_back(err);","                }","                if (rawtok-\u003estr() == ERROR) {","                    output.clear();","                    return;","                }","            }","","            if (rawtok-\u003estr() == DEFINE) {","                if (ifstates.top() != True)","                    continue;","                try {","                    const Macro \u0026macro = Macro(rawtok-\u003eprevious, files);","                    if (dui.undefined.find(macro.name()) == dui.undefined.end()) {","                        const MacroMap::iterator it = macros.find(macro.name());","                        if (it == macros.end())","                            macros.insert(std::pair\u003cTokenString, Macro\u003e(macro.name(), macro));","                        else","                            it-\u003esecond = macro;","                    }","                } catch (const std::runtime_error \u0026) {","                    if (outputList) {","                        simplecpp::Output err(files);","                        err.type = Output::SYNTAX_ERROR;","                        err.location = rawtok-\u003elocation;","                        err.msg = \"Failed to parse #define\";","                        outputList-\u003epush_back(err);","                    }","                    output.clear();","                    return;","                }","            } else if (ifstates.top() == True \u0026\u0026 rawtok-\u003estr() == INCLUDE) {","                TokenList inc1(files);","                for (const Token *inctok = rawtok-\u003enext; sameline(rawtok,inctok); inctok = inctok-\u003enext) {","                    if (!inctok-\u003ecomment)","                        inc1.push_back(new Token(*inctok));","                }","                TokenList inc2(files);","                if (!inc1.empty() \u0026\u0026 inc1.cfront()-\u003ename) {","                    const Token *inctok = inc1.cfront();","                    if (!preprocessToken(inc2, \u0026inctok, macros, files, outputList)) {","                        output.clear();","                        return;","                    }","                } else {","                    inc2.takeTokens(inc1);","                }","","                if (!inc1.empty() \u0026\u0026 !inc2.empty() \u0026\u0026 inc2.cfront()-\u003eop == '\u003c' \u0026\u0026 inc2.cback()-\u003eop == '\u003e') {","                    TokenString hdr;","                    // TODO: Sometimes spaces must be added in the string","                    // Somehow preprocessToken etc must be told that the location should be source location not destination location","                    for (const Token *tok = inc2.cfront(); tok; tok = tok-\u003enext) {","                        hdr += tok-\u003estr();","                    }","                    inc2.clear();","                    inc2.push_back(new Token(hdr, inc1.cfront()-\u003elocation));","                    inc2.front()-\u003eop = '\u003c';","                }","","                if (inc2.empty() || inc2.cfront()-\u003estr().size() \u003c= 2U) {","                    if (outputList) {","                        simplecpp::Output err(files);","                        err.type = Output::SYNTAX_ERROR;","                        err.location = rawtok-\u003elocation;","                        err.msg = \"No header in #include\";","                        outputList-\u003epush_back(err);","                    }","                    output.clear();","                    return;","                }","","                const Token * const inctok = inc2.cfront();","","                const bool systemheader = (inctok-\u003estr()[0] == '\u003c');","                const std::string header(realFilename(inctok-\u003estr().substr(1U, inctok-\u003estr().size() - 2U)));","                std::string header2 = getFileName(filedata, rawtok-\u003elocation.file(), header, dui, systemheader);","                if (header2.empty()) {","                    // try to load file..","                    std::ifstream f;","                    header2 = openHeader(f, dui, rawtok-\u003elocation.file(), header, systemheader);","                    if (f.is_open()) {","                        f.close();","                        TokenList * const tokens = new TokenList(header2, files, outputList);","                        if (dui.removeComments)","                            tokens-\u003eremoveComments();","                        filedata[header2] = tokens;","                    }","                }","                if (header2.empty()) {","                    if (outputList) {","                        simplecpp::Output out(files);","                        out.type = Output::MISSING_HEADER;","                        out.location = rawtok-\u003elocation;","                        out.msg = \"Header not found: \" + inctok-\u003estr();","                        outputList-\u003epush_back(out);","                    }","                } else if (includetokenstack.size() \u003e= 400) {","                    if (outputList) {","                        simplecpp::Output out(files);","                        out.type = Output::INCLUDE_NESTED_TOO_DEEPLY;","                        out.location = rawtok-\u003elocation;","                        out.msg = \"#include nested too deeply\";","                        outputList-\u003epush_back(out);","                    }","                } else if (pragmaOnce.find(header2) == pragmaOnce.end()) {","                    includetokenstack.push(gotoNextLine(rawtok));","                    const TokenList * const includetokens = filedata.find(header2)-\u003esecond;","                    rawtok = includetokens ? includetokens-\u003ecfront() : nullptr;","                    continue;","                }","            } else if (rawtok-\u003estr() == IF || rawtok-\u003estr() == IFDEF || rawtok-\u003estr() == IFNDEF || rawtok-\u003estr() == ELIF) {","                if (!sameline(rawtok,rawtok-\u003enext)) {","                    if (outputList) {","                        simplecpp::Output out(files);","                        out.type = Output::SYNTAX_ERROR;","                        out.location = rawtok-\u003elocation;","                        out.msg = \"Syntax error in #\" + rawtok-\u003estr();","                        outputList-\u003epush_back(out);","                    }","                    output.clear();","                    return;","                }","","                bool conditionIsTrue;","                if (ifstates.top() == AlwaysFalse || (ifstates.top() == ElseIsTrue \u0026\u0026 rawtok-\u003estr() != ELIF))","                    conditionIsTrue = false;","                else if (rawtok-\u003estr() == IFDEF) {","                    conditionIsTrue = (macros.find(rawtok-\u003enext-\u003estr()) != macros.end() || (hasInclude \u0026\u0026 rawtok-\u003enext-\u003estr() == HAS_INCLUDE));","                    maybeUsedMacros[rawtok-\u003enext-\u003estr()].push_back(rawtok-\u003enext-\u003elocation);","                } else if (rawtok-\u003estr() == IFNDEF) {","                    conditionIsTrue = (macros.find(rawtok-\u003enext-\u003estr()) == macros.end() \u0026\u0026 !(hasInclude \u0026\u0026 rawtok-\u003enext-\u003estr() == HAS_INCLUDE));","                    maybeUsedMacros[rawtok-\u003enext-\u003estr()].push_back(rawtok-\u003enext-\u003elocation);","                } else { /*if (rawtok-\u003estr() == IF || rawtok-\u003estr() == ELIF)*/","                    TokenList expr(files);","                    for (const Token *tok = rawtok-\u003enext; tok \u0026\u0026 tok-\u003elocation.sameline(rawtok-\u003elocation); tok = tok-\u003enext) {","                        if (!tok-\u003ename) {","                            expr.push_back(new Token(*tok));","                            continue;","                        }","","                        if (tok-\u003estr() == DEFINED) {","                            tok = tok-\u003enext;","                            const bool par = (tok \u0026\u0026 tok-\u003eop == '(');","                            if (par)","                                tok = tok-\u003enext;","                            maybeUsedMacros[rawtok-\u003enext-\u003estr()].push_back(rawtok-\u003enext-\u003elocation);","                            if (tok) {","                                if (macros.find(tok-\u003estr()) != macros.end())","                                    expr.push_back(new Token(\"1\", tok-\u003elocation));","                                else if (hasInclude \u0026\u0026 tok-\u003estr() == HAS_INCLUDE)","                                    expr.push_back(new Token(\"1\", tok-\u003elocation));","                                else","                                    expr.push_back(new Token(\"0\", tok-\u003elocation));","                            }","                            if (par)","                                tok = tok ? tok-\u003enext : nullptr;","                            if (!tok || !sameline(rawtok,tok) || (par \u0026\u0026 tok-\u003eop != ')')) {","                                if (outputList) {","                                    Output out(rawtok-\u003elocation.files);","                                    out.type = Output::SYNTAX_ERROR;","                                    out.location = rawtok-\u003elocation;","                                    out.msg = \"failed to evaluate \" + std::string(rawtok-\u003estr() == IF ? \"#if\" : \"#elif\") + \" condition\";","                                    outputList-\u003epush_back(out);","                                }","                                output.clear();","                                return;","                            }","                            continue;","                        }","","                        if (hasInclude \u0026\u0026 tok-\u003estr() == HAS_INCLUDE) {","                            tok = tok-\u003enext;","                            const bool par = (tok \u0026\u0026 tok-\u003eop == '(');","                            if (par)","                                tok = tok-\u003enext;","                            bool closingAngularBracket = false;","                            if (tok) {","                                const std::string \u0026sourcefile = rawtok-\u003elocation.file();","                                const bool systemheader = (tok \u0026\u0026 tok-\u003eop == '\u003c');","                                std::string header;","","                                if (systemheader) {","                                    while ((tok = tok-\u003enext) \u0026\u0026 tok-\u003eop != '\u003e')","                                        header += tok-\u003estr();","                                    // cppcheck-suppress selfAssignment - platform-dependent implementation","                                    header = realFilename(header);","                                    if (tok \u0026\u0026 tok-\u003eop == '\u003e')","                                        closingAngularBracket = true;","                                }","                                else {","                                    header = realFilename(tok-\u003estr().substr(1U, tok-\u003estr().size() - 2U));","                                    closingAngularBracket = true;","                                }","                                std::ifstream f;","                                const std::string header2 = openHeader(f,dui,sourcefile,header,systemheader);","                                expr.push_back(new Token(header2.empty() ? \"0\" : \"1\", tok-\u003elocation));","                            }","                            if (par)","                                tok = tok ? tok-\u003enext : nullptr;","                            if (!tok || !sameline(rawtok,tok) || (par \u0026\u0026 tok-\u003eop != ')') || (!closingAngularBracket)) {","                                if (outputList) {","                                    Output out(rawtok-\u003elocation.files);","                                    out.type = Output::SYNTAX_ERROR;","                                    out.location = rawtok-\u003elocation;","                                    out.msg = \"failed to evaluate \" + std::string(rawtok-\u003estr() == IF ? \"#if\" : \"#elif\") + \" condition\";","                                    outputList-\u003epush_back(out);","                                }","                                output.clear();","                                return;","                            }","                            continue;","                        }","","                        maybeUsedMacros[rawtok-\u003enext-\u003estr()].push_back(rawtok-\u003enext-\u003elocation);","","                        const Token *tmp = tok;","                        if (!preprocessToken(expr, \u0026tmp, macros, files, outputList)) {","                            output.clear();","                            return;","                        }","                        if (!tmp)","                            break;","                        tok = tmp-\u003eprevious;","                    }","                    try {","                        if (ifCond) {","                            std::string E;","                            for (const simplecpp::Token *tok = expr.cfront(); tok; tok = tok-\u003enext)","                                E += (E.empty() ? \"\" : \" \") + tok-\u003estr();","                            const long long result = evaluate(expr, dui, sizeOfType);","                            conditionIsTrue = (result != 0);","                            ifCond-\u003epush_back(IfCond(rawtok-\u003elocation, E, result));","                        } else {","                            const long long result = evaluate(expr, dui, sizeOfType);","                            conditionIsTrue = (result != 0);","                        }","                    } catch (const std::exception \u0026e) {","                        if (outputList) {","                            Output out(rawtok-\u003elocation.files);","                            out.type = Output::SYNTAX_ERROR;","                            out.location = rawtok-\u003elocation;","                            out.msg = \"failed to evaluate \" + std::string(rawtok-\u003estr() == IF ? \"#if\" : \"#elif\") + \" condition\";","                            if (e.what() \u0026\u0026 *e.what())","                                out.msg += std::string(\", \") + e.what();","                            outputList-\u003epush_back(out);","                        }","                        output.clear();","                        return;","                    }","                }","","                if (rawtok-\u003estr() != ELIF) {","                    // push a new ifstate..","                    if (ifstates.top() != True)","                        ifstates.push(AlwaysFalse);","                    else","                        ifstates.push(conditionIsTrue ? True : ElseIsTrue);","                } else if (ifstates.top() == True) {","                    ifstates.top() = AlwaysFalse;","                } else if (ifstates.top() == ElseIsTrue \u0026\u0026 conditionIsTrue) {","                    ifstates.top() = True;","                }","            } else if (rawtok-\u003estr() == ELSE) {","                ifstates.top() = (ifstates.top() == ElseIsTrue) ? True : AlwaysFalse;","            } else if (rawtok-\u003estr() == ENDIF) {","                ifstates.pop();","            } else if (rawtok-\u003estr() == UNDEF) {","                if (ifstates.top() == True) {","                    const Token *tok = rawtok-\u003enext;","                    while (sameline(rawtok,tok) \u0026\u0026 tok-\u003ecomment)","                        tok = tok-\u003enext;","                    if (sameline(rawtok, tok))","                        macros.erase(tok-\u003estr());","                }","            } else if (ifstates.top() == True \u0026\u0026 rawtok-\u003estr() == PRAGMA \u0026\u0026 rawtok-\u003enext \u0026\u0026 rawtok-\u003enext-\u003estr() == ONCE \u0026\u0026 sameline(rawtok,rawtok-\u003enext)) {","                pragmaOnce.insert(rawtok-\u003elocation.file());","            }","            rawtok = gotoNextLine(rawtok);","            continue;","        }","","        if (ifstates.top() != True) {","            // drop code","            rawtok = gotoNextLine(rawtok);","            continue;","        }","","        bool hash=false, hashhash=false;","        if (rawtok-\u003eop == '#' \u0026\u0026 sameline(rawtok,rawtok-\u003enext)) {","            if (rawtok-\u003enext-\u003eop != '#') {","                hash = true;","                rawtok = rawtok-\u003enext; // skip '#'","            } else if (sameline(rawtok,rawtok-\u003enext-\u003enext)) {","                hashhash = true;","                rawtok = rawtok-\u003enext-\u003enext; // skip '#' '#'","            }","        }","","        const Location loc(rawtok-\u003elocation);","        TokenList tokens(files);","","        if (!preprocessToken(tokens, \u0026rawtok, macros, files, outputList)) {","            output.clear();","            return;","        }","","        if (hash || hashhash) {","            std::string s;","            for (const Token *hashtok = tokens.cfront(); hashtok; hashtok = hashtok-\u003enext)","                s += hashtok-\u003estr();","            if (hash)","                output.push_back(new Token('\\\"' + s + '\\\"', loc));","            else if (output.back())","                output.back()-\u003esetstr(output.cback()-\u003estr() + s);","            else","                output.push_back(new Token(s, loc));","        } else {","            output.takeTokens(tokens);","        }","    }","","    if (macroUsage) {","        for (simplecpp::MacroMap::const_iterator macroIt = macros.begin(); macroIt != macros.end(); ++macroIt) {","            const Macro \u0026macro = macroIt-\u003esecond;","            std::list\u003cLocation\u003e usage = macro.usage();","            const std::list\u003cLocation\u003e\u0026 temp = maybeUsedMacros[macro.name()];","            usage.insert(usage.end(), temp.begin(), temp.end());","            for (std::list\u003cLocation\u003e::const_iterator usageIt = usage.begin(); usageIt != usage.end(); ++usageIt) {","                MacroUsage mu(usageIt-\u003efiles, macro.valueDefinedInCode());","                mu.macroName = macro.name();","                mu.macroLocation = macro.defineLocation();","                mu.useLocation = *usageIt;","                macroUsage-\u003epush_back(mu);","            }","        }","    }","}","","void simplecpp::cleanup(std::map\u003cstd::string, TokenList*\u003e \u0026filedata)","{","    for (std::map\u003cstd::string, TokenList*\u003e::iterator it = filedata.begin(); it != filedata.end(); ++it)","        delete it-\u003esecond;","    filedata.clear();","}","","simplecpp::cstd_t simplecpp::getCStd(const std::string \u0026std)","{","    if (std == \"c90\" || std == \"c89\" || std == \"iso9899:1990\" || std == \"iso9899:199409\" || std == \"gnu90\" || std == \"gnu89\")","        return C89;","    if (std == \"c99\" || std == \"c9x\" || std == \"iso9899:1999\" || std == \"iso9899:199x\" || std == \"gnu99\"|| std == \"gnu9x\")","        return C99;","    if (std == \"c11\" || std == \"c1x\" || std == \"iso9899:2011\" || std == \"gnu11\" || std == \"gnu1x\")","        return C11;","    if (std == \"c17\" || std == \"c18\" || std == \"iso9899:2017\" || std == \"iso9899:2018\" || std == \"gnu17\"|| std == \"gnu18\")","        return C17;","    if (std == \"c23\" || std == \"gnu23\" || std == \"c2x\" || std == \"gnu2x\")","        return C23;","    return CUnknown;","}","","std::string simplecpp::getCStdString(cstd_t std)","{","    switch (std)","    {","        case C89:","            // __STDC_VERSION__ is not set for C90 although the macro was added in the 1994 amendments","            return \"\";","        case C99:","            return \"199901L\";","        case C11:","            return \"201112L\";","        case C17:","            return \"201710L\";","        case C23:","            // supported by GCC 9+ and Clang 9+","            // Clang 9, 10, 11, 12, 13 return \"201710L\"","            // Clang 14, 15, 16, 17 return \"202000L\"","            // Clang 9, 10, 11, 12, 13, 14, 15, 16, 17 do not support \"c23\" and \"gnu23\"","            return \"202311L\";","        case CUnknown:","            return \"\";","    }","    return \"\";","}","","std::string simplecpp::getCStdString(const std::string \u0026std)","{","    return getCStdString(getCStd(std));","}","","simplecpp::cppstd_t simplecpp::getCppStd(const std::string \u0026std)","{","    if (std == \"c++98\" || std == \"c++03\" || std == \"gnu++98\" || std == \"gnu++03\")","        return CPP03;","    if (std == \"c++11\" || std == \"gnu++11\" || std == \"c++0x\" || std == \"gnu++0x\")","        return CPP11;","    if (std == \"c++14\" || std == \"c++1y\" || std == \"gnu++14\" || std == \"gnu++1y\")","        return CPP14;","    if (std == \"c++17\" || std == \"c++1z\" || std == \"gnu++17\" || std == \"gnu++1z\")","        return CPP17;","    if (std == \"c++20\" || std == \"c++2a\" || std == \"gnu++20\" || std == \"gnu++2a\")","        return CPP20;","    if (std == \"c++23\" || std == \"c++2b\" || std == \"gnu++23\" || std == \"gnu++2b\")","        return CPP23;","    if (std == \"c++26\" || std == \"c++2c\" || std == \"gnu++26\" || std == \"gnu++2c\")","        return CPP26;","    return CPPUnknown;","}","","std::string simplecpp::getCppStdString(cppstd_t std)","{","    switch (std)","    {","        case CPP03:","            return \"199711L\";","        case CPP11:","            return \"201103L\";","        case CPP14:","            return \"201402L\";","        case CPP17:","            return \"201703L\";","        case CPP20:","            // GCC 10 returns \"201703L\" - correct in 11+","            return \"202002L\";","        case CPP23:","            // supported by GCC 11+ and Clang 12+","            // GCC 11, 12, 13 return \"202100L\"","            // Clang 12, 13, 14, 15, 16 do not support \"c++23\" and \"gnu++23\" and return \"202101L\"","            // Clang 17, 18 return \"202302L\"","            return \"202302L\";","        case CPP26:","            // supported by Clang 17+","            return \"202400L\";","        case CPPUnknown:","            return \"\";","    }","    return \"\";","}","","std::string simplecpp::getCppStdString(const std::string \u0026std)","{","    return getCppStdString(getCppStd(std));","}","","#if (__cplusplus \u003c 201103L) \u0026\u0026 !defined(__APPLE__)","#undef nullptr","#endif"],"stylingDirectives":[[[0,2,"pl-c"],[0,2,"pl-c"]],[[0,68,"pl-c"]],[[0,41,"pl-c"]],[[0,3,"pl-c"],[1,3,"pl-c"]],[],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,25,"pl-en"]],[[1,7,"pl-k"],[8,16,"pl-en"]],[[1,6,"pl-k"]],[],[[1,8,"pl-k"],[9,22,"pl-s"],[9,10,"pl-pds"],[21,22,"pl-pds"]],[],[[1,8,"pl-k"],[9,20,"pl-s"],[9,10,"pl-pds"],[19,20,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,17,"pl-s"],[9,10,"pl-pds"],[16,17,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"],[19,39,"pl-c"],[19,21,"pl-c"]],[[1,8,"pl-k"],[9,17,"pl-s"],[9,10,"pl-pds"],[16,17,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,16,"pl-s"],[9,10,"pl-pds"],[15,16,"pl-pds"]],[[1,8,"pl-k"],[9,20,"pl-s"],[9,10,"pl-pds"],[19,20,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,19,"pl-s"],[9,10,"pl-pds"],[18,19,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,17,"pl-s"],[9,10,"pl-pds"],[16,17,"pl-pds"]],[[1,8,"pl-k"],[9,15,"pl-s"],[9,10,"pl-pds"],[14,15,"pl-pds"]],[[1,8,"pl-k"],[9,14,"pl-s"],[9,10,"pl-pds"],[13,14,"pl-pds"]],[[1,8,"pl-k"],[9,14,"pl-s"],[9,10,"pl-pds"],[13,14,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,16,"pl-s"],[9,10,"pl-pds"],[15,16,"pl-pds"]],[[1,8,"pl-k"],[9,20,"pl-s"],[9,10,"pl-pds"],[19,20,"pl-pds"]],[[1,8,"pl-k"],[9,17,"pl-s"],[9,10,"pl-pds"],[16,17,"pl-pds"]],[[1,3,"pl-k"]],[[1,6,"pl-k"]],[[1,8,"pl-k"],[9,16,"pl-s"],[9,10,"pl-pds"],[15,16,"pl-pds"]],[[1,6,"pl-k"]],[[1,8,"pl-k"],[9,24,"pl-s"],[9,10,"pl-pds"],[23,24,"pl-pds"]],[[1,6,"pl-k"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,17,"pl-s"],[9,10,"pl-pds"],[16,17,"pl-pds"]],[],[[1,6,"pl-k"]],[[1,8,"pl-k"],[9,20,"pl-s"],[9,10,"pl-pds"],[19,20,"pl-pds"]],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,16,"pl-en"],[17,25,"pl-k"]],[[1,7,"pl-k"],[8,16,"pl-en"],[17,25,"pl-k"]],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,16,"pl-en"]],[[1,7,"pl-k"],[8,16,"pl-en"]],[[1,6,"pl-k"]],[],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,15,"pl-en"],[16,20,"pl-c1"]],[[1,6,"pl-k"]],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,17,"pl-en"],[18,23,"pl-k"]],[],[[4,10,"pl-k"],[13,17,"pl-c1"],[20,21,"pl-c1"],[28,35,"pl-c1"],[36,37,"pl-c1"],[38,39,"pl-c1"],[40,44,"pl-s"],[40,41,"pl-pds"],[43,44,"pl-pds"],[47,48,"pl-c1"],[54,61,"pl-c1"],[62,63,"pl-c1"],[64,65,"pl-c1"],[66,70,"pl-s"],[66,67,"pl-pds"],[69,70,"pl-pds"],[73,74,"pl-c1"]],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,17,"pl-en"],[18,23,"pl-k"]],[],[[4,10,"pl-k"],[13,17,"pl-c1"],[20,21,"pl-c1"],[28,29,"pl-c1"],[32,35,"pl-s"],[32,33,"pl-pds"],[34,35,"pl-pds"],[43,44,"pl-c1"],[49,52,"pl-s"],[49,50,"pl-pds"],[51,52,"pl-pds"],[60,61,"pl-c1"],[65,68,"pl-s"],[65,66,"pl-pds"],[67,68,"pl-pds"]],[],[],[[0,149,"pl-c"],[0,2,"pl-c"]],[[0,6,"pl-k"],[7,11,"pl-k"],[12,28,"pl-en"],[29,34,"pl-k"]],[],[[4,10,"pl-k"],[13,17,"pl-c1"],[22,23,"pl-c1"],[30,31,"pl-c1"],[34,38,"pl-s"],[34,35,"pl-pds"],[35,37,"pl-cce"],[37,38,"pl-pds"],[47,53,"pl-c1"],[57,61,"pl-s"],[57,58,"pl-pds"],[58,60,"pl-cce"],[60,61,"pl-pds"]],[],[],[[0,149,"pl-c"],[0,2,"pl-c"]],[[0,6,"pl-k"],[7,11,"pl-k"],[12,26,"pl-en"],[27,32,"pl-k"]],[],[[4,88,"pl-c"],[4,6,"pl-c"]],[[4,77,"pl-c"],[4,6,"pl-c"]],[[4,10,"pl-k"],[13,17,"pl-c1"],[22,23,"pl-c1"],[30,31,"pl-c1"],[34,38,"pl-s"],[34,35,"pl-pds"],[35,37,"pl-cce"],[37,38,"pl-pds"],[47,53,"pl-c1"],[57,61,"pl-s"],[57,58,"pl-pds"],[58,60,"pl-cce"],[60,61,"pl-pds"]],[],[],[[0,6,"pl-k"],[7,12,"pl-k"],[36,42,"pl-en"],[43,51,"pl-s"],[43,44,"pl-pds"],[50,51,"pl-pds"]],[[0,6,"pl-k"],[7,12,"pl-k"],[36,41,"pl-en"],[42,49,"pl-s"],[42,43,"pl-pds"],[48,49,"pl-pds"]],[],[[0,6,"pl-k"],[7,12,"pl-k"],[36,43,"pl-en"],[44,53,"pl-s"],[44,45,"pl-pds"],[52,53,"pl-pds"]],[],[[0,6,"pl-k"],[7,12,"pl-k"],[36,41,"pl-en"],[42,49,"pl-s"],[42,43,"pl-pds"],[48,49,"pl-pds"]],[[0,6,"pl-k"],[7,12,"pl-k"],[36,43,"pl-en"],[44,53,"pl-s"],[44,45,"pl-pds"],[52,53,"pl-pds"]],[],[[0,6,"pl-k"],[7,12,"pl-k"],[36,38,"pl-en"],[39,43,"pl-s"],[39,40,"pl-pds"],[42,43,"pl-pds"]],[[0,6,"pl-k"],[7,12,"pl-k"],[36,41,"pl-en"],[42,49,"pl-s"],[42,43,"pl-pds"],[48,49,"pl-pds"]],[[0,6,"pl-k"],[7,12,"pl-k"],[36,42,"pl-en"],[43,51,"pl-s"],[43,44,"pl-pds"],[50,51,"pl-pds"]],[[0,6,"pl-k"],[7,12,"pl-k"],[36,43,"pl-en"],[44,53,"pl-s"],[44,45,"pl-pds"],[52,53,"pl-pds"]],[[0,6,"pl-k"],[7,12,"pl-k"],[36,40,"pl-en"],[41,47,"pl-s"],[41,42,"pl-pds"],[46,47,"pl-pds"]],[[0,6,"pl-k"],[7,12,"pl-k"],[36,40,"pl-en"],[41,47,"pl-s"],[41,42,"pl-pds"],[46,47,"pl-pds"]],[[0,6,"pl-k"],[7,12,"pl-k"],[36,41,"pl-en"],[42,49,"pl-s"],[42,43,"pl-pds"],[48,49,"pl-pds"]],[],[[0,6,"pl-k"],[7,12,"pl-k"],[36,42,"pl-en"],[43,51,"pl-s"],[43,44,"pl-pds"],[50,51,"pl-pds"]],[[0,6,"pl-k"],[7,12,"pl-k"],[36,40,"pl-en"],[41,47,"pl-s"],[41,42,"pl-pds"],[46,47,"pl-pds"]],[],[[0,6,"pl-k"],[7,12,"pl-k"],[36,47,"pl-en"],[48,63,"pl-s"],[48,49,"pl-pds"],[62,63,"pl-pds"]],[],[[0,8,"pl-k"],[9,14,"pl-k"],[15,16,"pl-en"],[18,24,"pl-k"],[37,45,"pl-en"]],[],[[4,62,"pl-c"],[4,6,"pl-c"]],[],[],[[4,10,"pl-k"],[16,19,"pl-c1"]],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,16,"pl-k"],[17,27,"pl-en"],[28,33,"pl-k"]],[],[[4,8,"pl-k"],[9,13,"pl-k"]],[[4,9,"pl-k"],[10,14,"pl-k"],[21,26,"pl-c1"]],[[4,9,"pl-k"],[10,14,"pl-k"],[21,26,"pl-c1"]],[[23,27,"pl-smi"],[36,42,"pl-c1"],[43,44,"pl-c1"],[56,62,"pl-c1"],[63,64,"pl-c1"]],[[4,6,"pl-k"]],[],[[4,8,"pl-k"],[9,11,"pl-k"]],[],[],[[4,10,"pl-k"]],[],[],[[0,6,"pl-k"],[7,15,"pl-k"],[16,20,"pl-k"],[21,25,"pl-k"],[26,37,"pl-en"],[38,43,"pl-k"]],[],[[4,12,"pl-k"],[13,17,"pl-k"],[18,22,"pl-k"]],[[4,9,"pl-k"],[10,14,"pl-k"],[21,26,"pl-c1"]],[[4,9,"pl-k"],[10,14,"pl-k"],[21,26,"pl-c1"]],[[23,27,"pl-smi"],[36,42,"pl-c1"],[43,44,"pl-c1"],[56,62,"pl-c1"],[63,64,"pl-c1"]],[[4,6,"pl-k"]],[],[[4,8,"pl-k"],[9,11,"pl-k"]],[],[],[[4,10,"pl-k"]],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,20,"pl-en"],[21,26,"pl-k"],[43,48,"pl-k"]],[],[[4,10,"pl-k"],[14,18,"pl-c1"],[26,30,"pl-c1"],[37,47,"pl-c1"],[50,56,"pl-c1"],[62,66,"pl-c1"],[72,78,"pl-c1"]],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,20,"pl-en"],[21,26,"pl-k"],[51,56,"pl-k"]],[],[[4,10,"pl-k"],[33,41,"pl-smi"],[42,50,"pl-c1"],[57,65,"pl-smi"]],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,33,"pl-en"],[34,39,"pl-k"],[63,68,"pl-k"]],[],[[4,10,"pl-k"],[17,21,"pl-smi"]],[[17,20,"pl-c1"]],[[17,25,"pl-smi"]],[[17,21,"pl-smi"]],[[18,26,"pl-smi"],[28,34,"pl-smi"],[43,51,"pl-smi"],[53,57,"pl-smi"],[66,74,"pl-smi"],[76,78,"pl-smi"],[82,85,"pl-s"],[82,83,"pl-pds"],[84,85,"pl-pds"]],[[18,22,"pl-smi"],[24,30,"pl-smi"],[39,43,"pl-smi"],[45,49,"pl-smi"],[58,62,"pl-smi"],[64,66,"pl-smi"],[70,73,"pl-s"],[70,71,"pl-pds"],[72,73,"pl-pds"]],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,32,"pl-en"],[33,38,"pl-k"],[62,67,"pl-k"]],[],[[4,10,"pl-k"],[18,22,"pl-smi"],[31,34,"pl-c1"]],[[19,27,"pl-smi"],[36,44,"pl-smi"],[46,48,"pl-smi"],[52,55,"pl-s"],[52,53,"pl-pds"],[54,55,"pl-pds"]],[[18,22,"pl-smi"],[32,36,"pl-smi"],[38,42,"pl-smi"],[51,55,"pl-smi"],[57,63,"pl-smi"]],[],[],[[0,6,"pl-k"],[19,29,"pl-en"],[45,50,"pl-k"],[70,75,"pl-k"]],[],[[4,7,"pl-k"],[9,15,"pl-c1"],[24,28,"pl-c1"],[70,74,"pl-c1"],[90,94,"pl-c1"]],[[10,17,"pl-c1"],[28,32,"pl-c1"]],[[4,10,"pl-k"]],[],[],[[0,5,"pl-k"]],[],[[0,4,"pl-k"],[5,32,"pl-en"],[33,38,"pl-k"]],[],[[4,6,"pl-k"],[8,15,"pl-c1"],[20,25,"pl-c1"],[29,35,"pl-s"],[29,30,"pl-pds"],[30,34,"pl-cce"],[34,35,"pl-pds"],[40,47,"pl-c1"]],[[19,23,"pl-c1"]],[[8,14,"pl-k"]],[],[],[[4,7,"pl-k"],[14,20,"pl-c1"],[25,27,"pl-c1"],[37,41,"pl-c1"]],[],[[8,10,"pl-k"],[22,26,"pl-s"],[22,23,"pl-pds"],[23,25,"pl-cce"],[25,26,"pl-pds"],[40,44,"pl-s"],[40,41,"pl-pds"],[41,43,"pl-cce"],[43,44,"pl-pds"]],[[18,19,"pl-c1"]],[],[[12,14,"pl-k"],[26,30,"pl-s"],[26,27,"pl-pds"],[27,29,"pl-cce"],[29,30,"pl-pds"],[37,38,"pl-c1"],[44,48,"pl-c1"],[60,61,"pl-c1"],[64,68,"pl-s"],[64,65,"pl-pds"],[65,67,"pl-cce"],[67,68,"pl-pds"]],[],[],[],[],[],[[0,4,"pl-k"],[5,30,"pl-en"],[31,36,"pl-k"],[37,41,"pl-k"],[49,54,"pl-k"]],[],[[4,10,"pl-k"],[18,22,"pl-s"],[18,19,"pl-pds"],[19,21,"pl-cce"],[21,22,"pl-pds"],[28,39,"pl-c1"],[52,59,"pl-c1"]],[],[],[[0,4,"pl-k"],[5,38,"pl-en"],[39,44,"pl-k"],[45,49,"pl-k"],[55,60,"pl-k"]],[],[[4,10,"pl-k"],[11,22,"pl-c1"],[33,34,"pl-c1"],[40,47,"pl-c1"]],[],[],[[0,4,"pl-k"],[5,36,"pl-en"],[37,42,"pl-k"],[43,47,"pl-k"],[53,58,"pl-k"]],[],[[4,10,"pl-k"],[11,22,"pl-c1"],[40,44,"pl-c1"],[49,51,"pl-c1"],[57,64,"pl-c1"]],[],[],[[0,4,"pl-k"],[5,31,"pl-en"],[34,39,"pl-k"]],[],[[4,9,"pl-k"],[23,27,"pl-c1"]],[[4,9,"pl-k"],[16,24,"pl-smi"]],[[19,27,"pl-smi"]],[[4,7,"pl-k"],[27,31,"pl-smi"]],[[8,10,"pl-k"],[17,25,"pl-smi"]],[[26,34,"pl-c1"],[45,53,"pl-smi"],[57,60,"pl-s"],[57,58,"pl-pds"],[59,60,"pl-pds"],[63,67,"pl-s"],[63,64,"pl-pds"],[64,66,"pl-cce"],[66,67,"pl-pds"]],[],[[26,29,"pl-c1"]],[],[],[],[],[[0,4,"pl-k"],[5,31,"pl-en"],[34,39,"pl-k"]],[],[[4,7,"pl-k"],[9,14,"pl-k"],[28,32,"pl-c1"],[50,54,"pl-smi"]],[[8,10,"pl-k"],[19,23,"pl-c1"]],[[26,34,"pl-c1"],[45,53,"pl-smi"],[57,60,"pl-s"],[57,58,"pl-pds"],[59,60,"pl-pds"],[63,67,"pl-s"],[63,64,"pl-pds"],[64,66,"pl-cce"],[66,67,"pl-pds"]],[],[[26,29,"pl-c1"]],[],[],[],[],[[0,102,"pl-c"],[0,2,"pl-c"]],[[0,5,"pl-k"],[6,15,"pl-en"]],[[0,7,"pl-k"]],[[4,11,"pl-k"],[12,19,"pl-en"]],[],[[4,11,"pl-k"],[12,15,"pl-k"],[16,19,"pl-en"]],[[4,11,"pl-k"],[12,15,"pl-k"],[16,20,"pl-en"]],[[4,11,"pl-k"],[12,16,"pl-k"],[17,22,"pl-en"]],[[4,11,"pl-k"],[12,16,"pl-k"],[17,21,"pl-en"]],[],[[4,12,"pl-k"],[13,17,"pl-k"],[18,26,"pl-en"]],[],[[8,16,"pl-k"],[17,21,"pl-k"],[27,38,"pl-k"],[39,47,"pl-k"],[48,52,"pl-k"],[54,57,"pl-c1"]],[],[[8,68,"pl-c"],[8,10,"pl-c"]],[[8,69,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"]],[[12,17,"pl-k"],[18,26,"pl-k"],[27,31,"pl-k"],[38,49,"pl-k"],[50,58,"pl-k"],[59,63,"pl-k"],[65,68,"pl-c1"]],[[12,17,"pl-k"],[18,21,"pl-k"],[29,42,"pl-c1"]],[[17,28,"pl-k"],[29,37,"pl-k"],[38,42,"pl-k"],[54,58,"pl-c1"],[62,66,"pl-c1"]],[],[],[[8,33,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[18,22,"pl-s"],[18,19,"pl-pds"],[19,21,"pl-cce"],[21,22,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[18,20,"pl-cce"],[20,21,"pl-pds"]],[],[[12,15,"pl-k"],[22,25,"pl-c1"]],[[12,14,"pl-k"]],[[16,21,"pl-k"],[22,25,"pl-k"],[31,34,"pl-c1"]],[[22,35,"pl-c1"]],[],[],[[12,14,"pl-k"],[23,27,"pl-s"],[23,24,"pl-pds"],[24,26,"pl-cce"],[26,27,"pl-pds"]],[[16,25,"pl-c1"]],[],[],[[8,14,"pl-k"]],[],[],[[4,12,"pl-k"],[13,17,"pl-k"],[18,26,"pl-en"]],[],[[8,16,"pl-k"],[17,21,"pl-k"],[27,38,"pl-k"],[39,47,"pl-k"],[48,52,"pl-k"],[54,58,"pl-c1"]],[],[[8,68,"pl-c"],[8,10,"pl-c"]],[[8,69,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"]],[[13,17,"pl-k"],[18,21,"pl-c1"]],[[12,17,"pl-k"],[18,26,"pl-k"],[27,31,"pl-k"],[38,49,"pl-k"],[50,58,"pl-k"],[59,63,"pl-k"],[65,69,"pl-c1"]],[[12,17,"pl-c1"]],[[12,17,"pl-k"],[18,21,"pl-k"],[29,42,"pl-c1"]],[[17,28,"pl-k"],[29,37,"pl-k"],[38,42,"pl-k"],[54,58,"pl-c1"],[62,66,"pl-c1"]],[],[],[[8,33,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[18,22,"pl-s"],[18,19,"pl-pds"],[19,21,"pl-cce"],[21,22,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[18,20,"pl-cce"],[20,21,"pl-pds"]],[],[[8,14,"pl-k"]],[],[],[[4,8,"pl-k"],[9,18,"pl-en"]],[],[[8,13,"pl-c1"]],[[8,10,"pl-k"]],[[12,17,"pl-c1"]],[],[],[[0,10,"pl-k"]],[[4,8,"pl-k"],[9,13,"pl-en"]],[[8,60,"pl-c"],[8,10,"pl-c"]],[[18,23,"pl-c1"]],[[14,27,"pl-c1"]],[[26,32,"pl-c1"],[43,49,"pl-c1"]],[],[],[[0,8,"pl-k"]],[[4,10,"pl-k"],[11,14,"pl-k"],[15,28,"pl-en"],[29,34,"pl-k"],[35,43,"pl-k"],[44,48,"pl-k"],[53,58,"pl-k"],[59,67,"pl-k"],[68,72,"pl-k"],[78,83,"pl-k"]],[],[[8,14,"pl-k"],[23,29,"pl-c1"],[38,39,"pl-c1"],[55,56,"pl-c1"]],[],[],[[4,12,"pl-k"],[13,18,"pl-k"],[19,32,"pl-en"]],[],[[8,13,"pl-k"],[14,17,"pl-k"],[24,28,"pl-c1"]],[],[[8,46,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[19,23,"pl-c1"]],[[13,17,"pl-k"],[18,21,"pl-c1"]],[[12,17,"pl-k"],[18,26,"pl-k"],[27,32,"pl-k"],[41,52,"pl-k"],[53,61,"pl-k"],[62,66,"pl-k"],[76,77,"pl-c1"]],[[12,14,"pl-k"],[16,20,"pl-c1"],[26,30,"pl-c1"]],[[16,22,"pl-k"],[30,41,"pl-k"],[42,50,"pl-k"],[51,55,"pl-k"],[57,60,"pl-c1"]],[[12,17,"pl-c1"]],[[12,18,"pl-k"],[19,20,"pl-c1"]],[],[],[[8,34,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[19,23,"pl-c1"]],[[13,17,"pl-k"],[18,21,"pl-c1"]],[[12,14,"pl-k"],[16,20,"pl-c1"],[26,30,"pl-c1"]],[[17,21,"pl-k"],[22,25,"pl-c1"]],[[16,18,"pl-k"],[20,24,"pl-c1"],[30,34,"pl-c1"]],[[21,25,"pl-k"],[26,29,"pl-c1"]],[[20,26,"pl-k"],[27,28,"pl-c1"]],[],[[16,21,"pl-c1"]],[],[[12,17,"pl-c1"]],[],[],[[8,14,"pl-k"],[15,16,"pl-c1"]],[],[],[[4,12,"pl-k"],[13,18,"pl-k"]],[[0,10,"pl-k"]],[[4,8,"pl-k"]],[],[],[[0,5,"pl-k"],[6,16,"pl-en"],[19,25,"pl-k"],[26,35,"pl-en"]],[[0,7,"pl-k"]],[[4,106,"pl-c"],[4,6,"pl-c"]],[[4,12,"pl-c1"],[13,23,"pl-en"]],[],[],[[8,14,"pl-k"],[20,24,"pl-c1"]],[[8,12,"pl-c1"]],[],[],[[4,11,"pl-k"],[12,15,"pl-k"],[16,19,"pl-en"]],[[8,14,"pl-k"],[20,23,"pl-c1"]],[],[[4,11,"pl-k"],[12,15,"pl-k"],[16,20,"pl-en"]],[[8,14,"pl-k"],[20,24,"pl-c1"]],[],[[4,11,"pl-k"],[12,16,"pl-k"],[17,22,"pl-en"]],[[13,18,"pl-c1"]],[],[[4,11,"pl-k"],[12,16,"pl-k"],[17,21,"pl-en"]],[[8,14,"pl-k"],[20,24,"pl-c1"]],[],[],[[0,8,"pl-k"]],[],[],[],[[0,5,"pl-k"],[6,22,"pl-en"],[25,31,"pl-k"],[32,41,"pl-en"]],[[0,7,"pl-k"]],[[4,106,"pl-c"],[4,6,"pl-c"]],[[4,20,"pl-en"],[21,26,"pl-k"],[27,35,"pl-k"],[36,40,"pl-k"],[52,58,"pl-c1"]],[],[],[[14,15,"pl-c1"]],[[21,22,"pl-c1"]],[],[[8,12,"pl-c1"]],[],[],[[4,11,"pl-k"],[12,15,"pl-k"],[16,19,"pl-en"]],[[8,10,"pl-k"]],[[12,18,"pl-k"],[32,35,"pl-c1"]],[[8,14,"pl-k"]],[],[[4,11,"pl-k"],[12,15,"pl-k"],[16,20,"pl-en"]],[[8,10,"pl-k"]],[[12,18,"pl-k"],[32,35,"pl-c1"]],[[8,14,"pl-k"]],[],[[4,11,"pl-k"],[12,16,"pl-k"],[17,22,"pl-en"]],[],[],[[4,11,"pl-k"],[12,16,"pl-k"],[17,21,"pl-en"]],[[8,14,"pl-k"],[29,32,"pl-c1"]],[],[],[[0,8,"pl-k"]],[[4,9,"pl-k"],[10,18,"pl-k"],[19,23,"pl-k"]],[[4,9,"pl-k"],[15,21,"pl-c1"]],[[9,15,"pl-c1"]],[[4,7,"pl-k"]],[],[],[[0,5,"pl-k"],[6,16,"pl-en"],[19,25,"pl-k"],[26,35,"pl-en"]],[[0,7,"pl-k"]],[[4,106,"pl-c"],[4,6,"pl-c"]],[[4,12,"pl-c1"],[13,23,"pl-en"],[24,29,"pl-k"]],[],[[17,18,"pl-c1"]],[[21,22,"pl-c1"]],[],[[8,10,"pl-k"]],[[18,27,"pl-c1"]],[[12,17,"pl-k"],[18,35,"pl-smi"],[62,76,"pl-c1"],[78,97,"pl-s"],[78,79,"pl-pds"],[96,97,"pl-pds"]],[],[[8,12,"pl-c1"]],[],[],[[4,15,"pl-en"],[18,26,"pl-c1"]],[[8,14,"pl-c1"]],[[15,22,"pl-c1"]],[],[],[[4,11,"pl-k"],[12,15,"pl-k"],[16,19,"pl-en"]],[[30,35,"pl-c1"]],[[8,14,"pl-k"]],[],[[4,11,"pl-k"],[12,15,"pl-k"],[16,20,"pl-en"]],[[8,29,"pl-c"],[8,10,"pl-c"]],[[8,13,"pl-k"],[14,17,"pl-k"],[23,28,"pl-c1"]],[[8,22,"pl-c1"]],[[8,14,"pl-k"]],[],[[4,11,"pl-k"],[12,16,"pl-k"],[17,22,"pl-en"]],[[8,22,"pl-c1"]],[],[[4,11,"pl-k"],[12,16,"pl-k"],[17,21,"pl-en"]],[[8,14,"pl-k"],[29,32,"pl-c1"]],[],[],[[0,8,"pl-k"]],[[4,8,"pl-k"],[9,23,"pl-en"],[24,27,"pl-k"]],[[8,10,"pl-k"]],[[12,41,"pl-c"],[12,14,"pl-c"]],[[12,50,"pl-c"],[12,14,"pl-c"]],[[12,17,"pl-c1"],[25,26,"pl-c1"],[28,36,"pl-c1"]],[],[[8,12,"pl-k"]],[[12,18,"pl-c1"]],[],[],[[4,14,"pl-en"],[15,20,"pl-k"]],[[16,24,"pl-k"],[26,31,"pl-k"]],[],[[4,8,"pl-c1"]],[[4,7,"pl-k"]],[[4,7,"pl-k"]],[],[],[[0,31,"pl-en"],[82,89,"pl-c1"],[102,109,"pl-c1"]],[],[[0,31,"pl-en"],[89,94,"pl-k"]],[[17,24,"pl-c1"],[37,44,"pl-c1"]],[],[[15,21,"pl-smi"]],[[4,12,"pl-c1"]],[],[],[[0,31,"pl-en"],[32,37,"pl-k"],[38,46,"pl-k"],[47,51,"pl-k"],[64,70,"pl-c1"],[114,119,"pl-k"]],[[17,24,"pl-c1"],[37,44,"pl-c1"]],[],[[21,27,"pl-smi"]],[[4,12,"pl-c1"]],[],[],[[0,31,"pl-en"],[32,37,"pl-k"],[38,42,"pl-k"],[55,61,"pl-c1"],[105,110,"pl-k"]],[[21,28,"pl-c1"],[41,48,"pl-c1"]],[],[[21,27,"pl-smi"],[28,44,"pl-k"],[45,50,"pl-k"],[51,59,"pl-k"],[60,64,"pl-k"]],[[4,12,"pl-c1"]],[],[],[[0,31,"pl-en"],[32,37,"pl-k"]],[[21,28,"pl-c1"],[41,48,"pl-c1"]],[],[[4,7,"pl-k"]],[],[[19,25,"pl-smi"]],[[8,16,"pl-c1"]],[],[[4,9,"pl-k"],[10,15,"pl-k"],[39,74,"pl-c"],[39,41,"pl-c"]],[],[[20,29,"pl-c1"]],[],[],[],[[0,31,"pl-en"],[32,37,"pl-k"],[69,76,"pl-c1"],[89,96,"pl-c1"]],[],[[5,9,"pl-c1"]],[],[],[[1,3,"pl-k"]],[[0,31,"pl-en"],[64,71,"pl-c1"],[84,91,"pl-c1"]],[],[[5,9,"pl-c1"],[12,21,"pl-c1"]],[],[[1,6,"pl-k"]],[],[[0,32,"pl-en"]],[],[[4,9,"pl-c1"]],[],[],[[44,52,"pl-k"],[54,59,"pl-k"]],[],[[4,6,"pl-k"],[8,12,"pl-c1"]],[[8,13,"pl-c1"]],[[22,27,"pl-smi"]],[[8,11,"pl-k"],[13,18,"pl-k"],[38,44,"pl-c1"],[64,68,"pl-smi"]],[[12,21,"pl-c1"],[22,25,"pl-k"],[26,31,"pl-c1"]],[[27,37,"pl-smi"]],[],[[4,10,"pl-k"],[12,16,"pl-c1"]],[],[],[[1,3,"pl-k"]],[[44,52,"pl-k"]],[],[[4,6,"pl-k"],[8,12,"pl-c1"]],[[8,13,"pl-c1"]],[[27,37,"pl-smi"]],[[14,24,"pl-smi"],[27,34,"pl-c1"]],[[26,35,"pl-smi"]],[[14,23,"pl-smi"],[26,33,"pl-c1"]],[[22,27,"pl-smi"]],[[21,30,"pl-c1"],[37,47,"pl-smi"]],[],[[4,10,"pl-k"],[12,16,"pl-c1"]],[],[[1,6,"pl-k"]],[],[[0,4,"pl-k"],[5,32,"pl-en"]],[],[[16,23,"pl-c1"]],[[4,9,"pl-k"]],[[16,21,"pl-k"],[41,45,"pl-smi"]],[[8,14,"pl-k"]],[],[],[[15,20,"pl-c1"]],[],[],[[0,4,"pl-k"],[5,36,"pl-en"]],[],[[4,6,"pl-k"]],[],[[4,8,"pl-k"]],[[19,23,"pl-smi"]],[[9,17,"pl-smi"]],[],[],[],[[0,4,"pl-k"],[5,31,"pl-en"],[34,39,"pl-k"]],[],[[17,26,"pl-c1"]],[],[],[[12,43,"pl-en"],[46,51,"pl-k"]],[],[],[[13,16,"pl-smi"]],[[4,7,"pl-k"],[9,14,"pl-k"],[28,34,"pl-c1"],[54,58,"pl-smi"]],[[8,10,"pl-k"],[17,25,"pl-smi"],[26,30,"pl-smi"],[37,41,"pl-smi"],[50,58,"pl-smi"],[59,68,"pl-smi"],[76,85,"pl-smi"]],[[19,29,"pl-s"],[19,20,"pl-pds"],[20,22,"pl-cce"],[28,29,"pl-pds"],[38,46,"pl-smi"],[47,51,"pl-smi"],[55,60,"pl-s"],[55,56,"pl-pds"],[57,59,"pl-cce"],[59,60,"pl-pds"],[69,77,"pl-smi"],[78,82,"pl-c1"],[88,94,"pl-s"],[88,89,"pl-pds"],[89,93,"pl-cce"],[93,94,"pl-pds"]],[[23,31,"pl-smi"]],[],[],[[8,13,"pl-k"],[20,28,"pl-smi"],[29,33,"pl-smi"],[40,44,"pl-smi"]],[[19,23,"pl-s"],[19,20,"pl-pds"],[20,22,"pl-cce"],[22,23,"pl-pds"]],[[16,20,"pl-smi"]],[],[],[[8,10,"pl-k"],[12,20,"pl-c1"],[26,34,"pl-smi"]],[[19,22,"pl-s"],[19,20,"pl-pds"],[21,22,"pl-pds"]],[],[[20,23,"pl-c1"]],[],[[12,18,"pl-c1"],[24,27,"pl-c1"]],[],[],[[4,10,"pl-k"],[15,18,"pl-c1"]],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,22,"pl-en"],[23,31,"pl-k"],[32,36,"pl-k"]],[],[[4,10,"pl-k"],[11,23,"pl-c1"],[37,40,"pl-s"],[37,38,"pl-pds"],[39,40,"pl-pds"],[50,53,"pl-s"],[50,51,"pl-pds"],[52,53,"pl-pds"]],[],[],[[0,6,"pl-k"],[19,31,"pl-en"],[32,37,"pl-k"]],[],[],[[12,16,"pl-s"],[12,13,"pl-pds"],[13,15,"pl-cce"],[15,16,"pl-pds"]],[[4,7,"pl-k"],[14,20,"pl-c1"],[25,27,"pl-c1"],[37,41,"pl-c1"],[46,47,"pl-c1"]],[[8,13,"pl-k"],[14,18,"pl-k"]],[[8,10,"pl-k"],[17,21,"pl-s"],[17,18,"pl-pds"],[18,20,"pl-cce"],[20,21,"pl-pds"],[30,34,"pl-s"],[30,31,"pl-pds"],[31,33,"pl-cce"],[33,34,"pl-pds"],[43,47,"pl-s"],[43,44,"pl-pds"],[44,46,"pl-cce"],[46,47,"pl-pds"]],[[20,24,"pl-s"],[20,21,"pl-pds"],[21,23,"pl-cce"],[23,24,"pl-pds"]],[],[],[[12,16,"pl-s"],[12,13,"pl-pds"],[13,15,"pl-cce"],[15,16,"pl-pds"]],[[4,10,"pl-k"],[16,19,"pl-c1"]],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,32,"pl-en"],[68,73,"pl-k"],[107,112,"pl-k"]],[],[[4,6,"pl-k"]],[[8,14,"pl-k"]],[[22,25,"pl-smi"]],[[8,12,"pl-smi"],[34,55,"pl-c1"]],[[8,16,"pl-smi"]],[[8,11,"pl-smi"],[14,70,"pl-s"],[14,15,"pl-pds"],[69,70,"pl-pds"]],[[16,25,"pl-c1"]],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,33,"pl-en"],[34,39,"pl-k"]],[],[[4,10,"pl-k"],[18,21,"pl-s"],[18,19,"pl-pds"],[20,21,"pl-pds"],[32,35,"pl-s"],[32,33,"pl-pds"],[34,35,"pl-pds"],[46,49,"pl-s"],[46,47,"pl-pds"],[48,49,"pl-pds"],[60,64,"pl-s"],[60,61,"pl-pds"],[63,64,"pl-pds"]],[[18,21,"pl-s"],[18,19,"pl-pds"],[20,21,"pl-pds"],[32,36,"pl-s"],[32,33,"pl-pds"],[35,36,"pl-pds"],[47,51,"pl-s"],[47,48,"pl-pds"],[50,51,"pl-pds"],[62,66,"pl-s"],[62,63,"pl-pds"],[65,66,"pl-pds"],[77,82,"pl-s"],[77,78,"pl-pds"],[81,82,"pl-pds"]],[],[],[[0,4,"pl-k"],[5,40,"pl-en"],[41,49,"pl-k"],[50,53,"pl-k"],[65,73,"pl-k"],[74,77,"pl-k"]],[],[[4,6,"pl-k"],[31,40,"pl-smi"],[62,66,"pl-smi"]],[[18,27,"pl-smi"]],[[18,22,"pl-smi"]],[[8,14,"pl-k"]],[],[],[[4,6,"pl-k"],[15,16,"pl-c1"],[30,34,"pl-smi"]],[[18,22,"pl-smi"]],[[8,13,"pl-k"],[15,20,"pl-c1"],[24,26,"pl-smi"],[30,33,"pl-s"],[30,31,"pl-pds"],[32,33,"pl-pds"]],[[12,23,"pl-c1"],[24,28,"pl-c1"]],[[8,19,"pl-c1"],[20,24,"pl-c1"]],[[8,14,"pl-k"]],[],[],[],[[0,6,"pl-k"],[7,12,"pl-k"],[25,36,"pl-en"],[37,41,"pl-s"],[37,38,"pl-pds"],[40,41,"pl-pds"]],[],[[0,4,"pl-k"],[5,35,"pl-en"],[52,57,"pl-k"]],[],[],[],[[4,12,"pl-k"],[13,16,"pl-k"],[29,31,"pl-c1"]],[],[[4,9,"pl-k"],[32,39,"pl-c1"]],[],[[13,21,"pl-smi"]],[[13,22,"pl-smi"],[25,34,"pl-c1"]],[[13,17,"pl-smi"],[20,22,"pl-c1"]],[[13,16,"pl-smi"],[20,22,"pl-c1"]],[[4,9,"pl-k"],[18,22,"pl-c1"]],[[8,16,"pl-k"],[17,21,"pl-k"],[34,42,"pl-c1"]],[[8,10,"pl-k"],[20,24,"pl-c1"]],[[12,17,"pl-k"]],[],[[8,10,"pl-k"],[18,22,"pl-c1"]],[[12,14,"pl-k"]],[[34,37,"pl-smi"]],[[20,24,"pl-smi"],[46,66,"pl-c1"]],[[20,28,"pl-smi"]],[],[[21,32,"pl-k"],[33,36,"pl-k"]],[[20,23,"pl-smi"],[26,85,"pl-s"],[26,27,"pl-pds"],[84,85,"pl-pds"],[90,93,"pl-c1"],[98,151,"pl-s"],[98,99,"pl-pds"],[150,151,"pl-pds"]],[[28,37,"pl-c1"]],[],[[12,17,"pl-c1"]],[[12,18,"pl-k"]],[],[],[[8,10,"pl-k"],[18,22,"pl-s"],[18,19,"pl-pds"],[19,21,"pl-cce"],[21,22,"pl-pds"]],[[12,14,"pl-k"],[16,21,"pl-c1"],[27,32,"pl-c1"],[36,38,"pl-smi"],[42,46,"pl-s"],[42,43,"pl-pds"],[43,45,"pl-cce"],[45,46,"pl-pds"]],[[16,18,"pl-k"],[29,32,"pl-smi"],[35,40,"pl-c1"],[44,52,"pl-smi"],[53,56,"pl-smi"],[59,61,"pl-c1"]],[[20,40,"pl-c1"],[60,65,"pl-c1"],[69,77,"pl-smi"]],[],[[16,27,"pl-c1"],[28,32,"pl-c1"]],[[14,18,"pl-k"]],[[25,29,"pl-smi"],[45,46,"pl-c1"]],[[28,30,"pl-c1"]],[],[[12,14,"pl-k"]],[[25,28,"pl-smi"],[31,32,"pl-c1"]],[],[[12,14,"pl-k"],[32,37,"pl-c1"]],[[31,36,"pl-c1"]],[[16,18,"pl-k"],[21,43,"pl-c1"]],[[20,28,"pl-k"]],[[16,21,"pl-k"],[34,42,"pl-smi"],[43,51,"pl-c1"]],[[16,18,"pl-k"],[32,46,"pl-s"],[32,33,"pl-pds"],[45,46,"pl-pds"]],[[20,25,"pl-k"],[42,47,"pl-c1"]],[[20,25,"pl-k"],[35,42,"pl-smi"]],[[41,49,"pl-smi"]],[[24,28,"pl-c1"]],[[29,38,"pl-smi"],[41,50,"pl-c1"],[59,62,"pl-c1"],[65,71,"pl-c1"],[72,74,"pl-c1"],[84,87,"pl-c1"],[90,94,"pl-c1"],[99,101,"pl-c1"]],[[29,33,"pl-smi"],[36,38,"pl-c1"]],[[18,22,"pl-k"],[23,25,"pl-k"],[39,53,"pl-s"],[39,40,"pl-pds"],[52,53,"pl-pds"]],[[20,25,"pl-k"],[42,47,"pl-c1"]],[[20,25,"pl-k"],[35,42,"pl-smi"]],[[41,49,"pl-smi"]],[[20,33,"pl-c1"],[43,52,"pl-smi"],[54,63,"pl-c1"],[72,75,"pl-c1"],[78,83,"pl-c1"]],[[18,22,"pl-k"],[23,25,"pl-k"],[39,54,"pl-s"],[39,40,"pl-pds"],[53,54,"pl-pds"],[70,90,"pl-s"],[70,71,"pl-pds"],[89,90,"pl-pds"]],[[20,25,"pl-k"],[42,47,"pl-c1"]],[[20,25,"pl-k"],[35,42,"pl-smi"]],[[41,49,"pl-smi"]],[[20,25,"pl-k"],[50,58,"pl-smi"]],[[20,25,"pl-k"],[35,42,"pl-smi"]],[[41,49,"pl-smi"]],[[20,33,"pl-c1"],[34,43,"pl-c1"],[44,54,"pl-c1"],[63,66,"pl-c1"],[69,75,"pl-c1"],[76,78,"pl-c1"],[88,91,"pl-c1"],[94,98,"pl-c1"],[103,105,"pl-c1"],[107,113,"pl-s"],[107,108,"pl-pds"],[108,112,"pl-cce"],[112,113,"pl-pds"],[114,118,"pl-s"],[114,115,"pl-pds"],[115,117,"pl-cce"],[117,118,"pl-pds"]],[[34,43,"pl-c1"],[52,55,"pl-c1"],[58,63,"pl-c1"]],[],[[16,27,"pl-c"],[16,18,"pl-c"]],[[16,20,"pl-k"],[21,23,"pl-k"],[37,48,"pl-s"],[37,38,"pl-pds"],[47,48,"pl-pds"],[57,62,"pl-c1"]],[[35,38,"pl-c1"]],[[24,27,"pl-c1"]],[],[],[],[[12,20,"pl-k"]],[],[],[[8,10,"pl-k"],[18,21,"pl-s"],[18,19,"pl-pds"],[20,21,"pl-pds"]],[[21,24,"pl-smi"]],[[12,20,"pl-k"]],[],[],[],[],[[8,10,"pl-k"],[12,17,"pl-c1"],[23,28,"pl-c1"],[32,40,"pl-smi"],[41,45,"pl-smi"],[58,62,"pl-smi"],[66,71,"pl-c1"],[75,83,"pl-smi"],[87,92,"pl-c1"],[96,104,"pl-smi"],[106,108,"pl-smi"],[112,115,"pl-s"],[112,113,"pl-pds"],[114,115,"pl-pds"]],[[12,17,"pl-k"],[25,30,"pl-k"],[39,50,"pl-c1"]],[[12,14,"pl-k"],[32,34,"pl-smi"],[38,41,"pl-s"],[38,39,"pl-pds"],[40,41,"pl-pds"],[52,56,"pl-smi"],[68,72,"pl-smi"],[74,77,"pl-c1"],[83,90,"pl-s"],[83,84,"pl-pds"],[89,90,"pl-pds"],[101,105,"pl-smi"],[107,110,"pl-c1"],[116,125,"pl-s"],[116,117,"pl-pds"],[124,125,"pl-pds"]],[[16,20,"pl-k"],[28,31,"pl-s"],[28,29,"pl-pds"],[30,31,"pl-pds"]],[[16,21,"pl-k"],[30,34,"pl-c1"],[49,53,"pl-s"],[49,50,"pl-pds"],[50,52,"pl-cce"],[52,53,"pl-pds"],[64,68,"pl-s"],[64,65,"pl-pds"],[65,67,"pl-cce"],[67,68,"pl-pds"],[78,82,"pl-s"],[78,79,"pl-pds"],[79,81,"pl-cce"],[81,82,"pl-pds"]],[],[],[[32,40,"pl-c1"]],[],[[23,32,"pl-c1"]],[[16,25,"pl-c1"],[26,29,"pl-k"],[30,35,"pl-c1"]],[[25,31,"pl-c1"]],[[16,24,"pl-k"]],[],[],[],[[8,25,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[12,22,"pl-c1"]],[[12,17,"pl-k"],[18,22,"pl-k"],[29,41,"pl-c1"]],[[12,17,"pl-k"],[26,30,"pl-c1"],[36,46,"pl-c1"]],[],[[28,36,"pl-c1"]],[[16,18,"pl-k"],[31,35,"pl-s"],[31,32,"pl-pds"],[32,34,"pl-cce"],[34,35,"pl-pds"],[39,49,"pl-c1"],[57,65,"pl-c1"]],[[32,40,"pl-c1"]],[],[],[[19,28,"pl-c1"]],[],[],[[8,18,"pl-c"],[8,10,"pl-c"]],[[8,12,"pl-k"],[13,15,"pl-k"],[23,26,"pl-s"],[23,24,"pl-pds"],[25,26,"pl-pds"],[37,45,"pl-c1"],[51,54,"pl-s"],[51,52,"pl-pds"],[53,54,"pl-pds"]],[[12,17,"pl-k"],[26,30,"pl-c1"],[42,46,"pl-s"],[42,43,"pl-pds"],[43,45,"pl-cce"],[45,46,"pl-pds"],[56,60,"pl-s"],[56,57,"pl-pds"],[57,59,"pl-cce"],[59,60,"pl-pds"]],[],[[28,36,"pl-c1"]],[],[[12,17,"pl-k"],[60,76,"pl-c1"],[77,82,"pl-s"],[77,78,"pl-pds"],[79,81,"pl-cce"],[81,82,"pl-pds"]],[[12,14,"pl-k"],[35,39,"pl-c1"],[44,46,"pl-c1"],[71,75,"pl-s"],[71,72,"pl-pds"],[72,74,"pl-cce"],[74,75,"pl-pds"]],[[16,36,"pl-c1"]],[[12,14,"pl-k"],[42,46,"pl-c1"],[51,53,"pl-c1"],[58,62,"pl-s"],[58,59,"pl-pds"],[59,61,"pl-cce"],[61,62,"pl-pds"]],[],[[29,34,"pl-c1"],[48,52,"pl-c1"],[57,59,"pl-c1"]],[[14,18,"pl-k"]],[[23,32,"pl-c1"]],[],[],[],[[8,18,"pl-c"],[8,10,"pl-c"]],[[8,12,"pl-k"],[13,15,"pl-k"],[23,26,"pl-s"],[23,24,"pl-pds"],[25,26,"pl-pds"],[37,45,"pl-c1"],[51,54,"pl-s"],[51,52,"pl-pds"],[53,54,"pl-pds"]],[[27,31,"pl-s"],[27,28,"pl-pds"],[30,31,"pl-pds"]],[[13,17,"pl-k"],[25,33,"pl-c1"]],[[24,32,"pl-c1"]],[[12,17,"pl-k"],[26,30,"pl-c1"]],[],[[16,18,"pl-k"],[33,37,"pl-c1"],[43,45,"pl-c1"],[49,57,"pl-c1"],[72,83,"pl-c1"]],[[20,25,"pl-k"]],[[28,36,"pl-c1"]],[],[[12,26,"pl-c"],[12,14,"pl-c"]],[],[[41,42,"pl-c1"]],[[12,17,"pl-k"],[39,43,"pl-c1"],[44,50,"pl-s"],[44,45,"pl-pds"],[45,49,"pl-cce"],[49,50,"pl-pds"]],[[29,34,"pl-c1"],[39,40,"pl-c1"]],[],[],[[12,14,"pl-k"],[29,51,"pl-c1"]],[[22,23,"pl-c1"]],[[16,21,"pl-k"],[43,47,"pl-c1"],[48,52,"pl-s"],[48,49,"pl-pds"],[49,51,"pl-cce"],[51,52,"pl-pds"]],[[33,38,"pl-c1"],[43,44,"pl-c1"]],[],[],[],[],[],[[8,32,"pl-c"],[8,10,"pl-c"]],[[8,12,"pl-k"],[13,15,"pl-k"],[23,27,"pl-s"],[23,24,"pl-pds"],[24,26,"pl-cce"],[26,27,"pl-pds"],[37,41,"pl-s"],[37,38,"pl-pds"],[38,40,"pl-cce"],[40,41,"pl-pds"]],[],[[12,14,"pl-k"],[16,21,"pl-c1"],[27,32,"pl-c1"],[36,40,"pl-smi"],[44,65,"pl-c1"],[66,71,"pl-c1"],[75,78,"pl-c1"]],[[18,23,"pl-c1"],[27,35,"pl-smi"],[36,39,"pl-smi"],[42,47,"pl-c1"],[51,54,"pl-c1"],[57,61,"pl-c1"],[77,80,"pl-smi"]],[[17,22,"pl-c1"],[26,34,"pl-smi"],[35,39,"pl-smi"],[52,56,"pl-smi"]],[[25,30,"pl-c1"],[34,37,"pl-c1"]],[],[[12,39,"pl-c"],[12,14,"pl-c"]],[[12,14,"pl-k"],[22,26,"pl-s"],[22,23,"pl-pds"],[23,25,"pl-cce"],[25,26,"pl-pds"],[38,43,"pl-c1"],[50,55,"pl-c1"],[59,62,"pl-c1"],[65,71,"pl-c1"],[77,80,"pl-s"],[77,78,"pl-pds"],[79,80,"pl-pds"]],[],[],[[23,29,"pl-c1"],[37,41,"pl-c1"],[46,47,"pl-c1"]],[[28,36,"pl-c1"]],[[16,21,"pl-k"],[30,34,"pl-c1"],[46,49,"pl-s"],[46,47,"pl-pds"],[48,49,"pl-pds"],[59,63,"pl-s"],[59,60,"pl-pds"],[60,62,"pl-cce"],[62,63,"pl-pds"]],[],[[32,40,"pl-c1"]],[],[[16,18,"pl-k"],[28,32,"pl-c1"],[44,48,"pl-s"],[44,45,"pl-pds"],[45,47,"pl-cce"],[47,48,"pl-pds"]],[[20,22,"pl-k"]],[[31,34,"pl-smi"]],[[28,32,"pl-smi"],[43,55,"pl-c1"]],[[28,36,"pl-smi"]],[[28,31,"pl-smi"],[34,76,"pl-s"],[34,35,"pl-pds"],[75,76,"pl-pds"]],[[36,45,"pl-c1"]],[],[[20,26,"pl-k"]],[],[[16,21,"pl-k"],[34,48,"pl-smi"],[49,52,"pl-s"],[49,50,"pl-pds"],[51,52,"pl-pds"]],[[16,21,"pl-k"],[30,34,"pl-c1"],[42,50,"pl-c1"],[97,101,"pl-c1"],[106,107,"pl-c1"]],[[43,51,"pl-c1"]],[[16,18,"pl-k"],[21,29,"pl-c1"]],[[20,22,"pl-k"]],[[31,34,"pl-smi"]],[[28,32,"pl-smi"],[43,55,"pl-c1"]],[[28,36,"pl-smi"]],[[28,31,"pl-smi"],[34,77,"pl-s"],[34,35,"pl-pds"],[76,77,"pl-pds"]],[[36,45,"pl-c1"]],[],[[20,26,"pl-k"]],[],[[29,34,"pl-c1"],[48,52,"pl-c1"],[72,76,"pl-c1"],[95,99,"pl-c1"],[104,106,"pl-c1"]],[[31,43,"pl-c1"]],[[29,35,"pl-c1"],[36,37,"pl-c1"]],[[16,20,"pl-c1"],[24,30,"pl-c1"]],[[25,31,"pl-c1"]],[[16,18,"pl-k"],[33,46,"pl-c1"],[47,53,"pl-s"],[47,48,"pl-pds"],[48,52,"pl-cce"],[52,53,"pl-pds"]],[[29,32,"pl-smi"],[36,37,"pl-c1"],[40,41,"pl-c1"],[50,54,"pl-c1"]],[[16,20,"pl-k"]],[[29,32,"pl-smi"],[36,37,"pl-c1"],[46,50,"pl-c1"]],[],[[16,24,"pl-k"]],[],[],[[27,36,"pl-c1"]],[[12,14,"pl-k"],[29,33,"pl-c1"],[38,40,"pl-c1"]],[[16,51,"pl-c"],[16,18,"pl-c"]],[[16,22,"pl-k"]],[],[],[],[[12,15,"pl-k"],[27,28,"pl-c1"]],[[12,17,"pl-k"],[28,41,"pl-c1"],[42,48,"pl-s"],[42,43,"pl-pds"],[43,47,"pl-cce"],[47,48,"pl-pds"]],[[18,23,"pl-c1"],[28,29,"pl-c1"]],[],[],[],[[12,14,"pl-k"],[23,28,"pl-c1"]],[[16,25,"pl-c1"],[26,29,"pl-k"],[30,35,"pl-c1"],[49,61,"pl-c1"],[69,77,"pl-c1"],[84,115,"pl-c"],[84,86,"pl-c"]],[[12,16,"pl-k"]],[[16,20,"pl-c1"],[24,30,"pl-c1"]],[],[[12,14,"pl-k"],[27,28,"pl-c1"]],[[16,21,"pl-k"],[30,35,"pl-k"],[44,55,"pl-c1"]],[[16,18,"pl-k"],[36,38,"pl-smi"],[42,45,"pl-s"],[42,43,"pl-pds"],[44,45,"pl-pds"],[56,60,"pl-smi"],[72,76,"pl-smi"],[78,81,"pl-c1"],[87,95,"pl-s"],[87,88,"pl-pds"],[94,95,"pl-pds"],[106,110,"pl-smi"],[112,115,"pl-c1"],[121,129,"pl-s"],[121,122,"pl-pds"],[128,129,"pl-pds"],[141,145,"pl-smi"],[147,151,"pl-smi"]],[],[[29,35,"pl-c1"]],[[20,28,"pl-k"]],[],[],[],[[21,27,"pl-c1"]],[[12,20,"pl-k"]],[],[],[[8,12,"pl-k"]],[],[],[],[[8,10,"pl-k"],[26,31,"pl-c1"],[37,40,"pl-s"],[37,38,"pl-pds"],[39,40,"pl-pds"]],[[12,17,"pl-k"],[26,31,"pl-k"],[40,51,"pl-c1"]],[[12,14,"pl-k"],[32,34,"pl-smi"],[38,41,"pl-s"],[38,39,"pl-pds"],[40,41,"pl-pds"],[52,56,"pl-smi"],[67,71,"pl-smi"],[73,76,"pl-c1"],[82,91,"pl-s"],[82,83,"pl-pds"],[90,91,"pl-pds"]],[[31,40,"pl-c1"],[59,62,"pl-s"],[59,60,"pl-pds"],[61,62,"pl-pds"],[64,67,"pl-s"],[64,65,"pl-pds"],[66,67,"pl-pds"]],[[16,18,"pl-k"],[33,37,"pl-c1"],[42,44,"pl-c1"]],[[20,26,"pl-k"]],[],[],[],[[8,17,"pl-c1"],[18,21,"pl-k"],[22,27,"pl-c1"],[52,64,"pl-c1"],[72,80,"pl-c1"]],[],[[8,10,"pl-k"]],[[21,24,"pl-smi"],[41,45,"pl-c1"]],[[8,12,"pl-k"]],[[21,27,"pl-c1"]],[],[],[[4,20,"pl-c1"]],[],[],[[0,4,"pl-k"],[5,36,"pl-en"]],[],[[4,9,"pl-k"],[11,17,"pl-c1"]],[[8,24,"pl-c"],[8,10,"pl-c"]],[[21,25,"pl-c1"]],[[8,13,"pl-k"],[27,29,"pl-smi"],[33,36,"pl-s"],[33,34,"pl-pds"],[35,36,"pl-pds"]],[[23,31,"pl-smi"]],[],[[8,35,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"]],[[18,23,"pl-c1"]],[],[[8,35,"pl-c"],[8,10,"pl-c"]],[[8,31,"pl-c1"]],[[8,26,"pl-c1"]],[[8,23,"pl-c1"]],[[8,22,"pl-c1"]],[[8,27,"pl-c1"]],[[8,24,"pl-c1"]],[[8,26,"pl-c1"]],[[8,27,"pl-c1"]],[],[[8,67,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[17,19,"pl-smi"],[23,26,"pl-s"],[23,24,"pl-pds"],[25,26,"pl-pds"]],[[12,17,"pl-k"]],[],[[8,10,"pl-k"],[18,22,"pl-smi"],[32,36,"pl-smi"],[38,42,"pl-smi"],[51,55,"pl-smi"],[57,61,"pl-smi"],[63,65,"pl-smi"],[69,72,"pl-s"],[69,70,"pl-pds"],[71,72,"pl-pds"]],[[12,17,"pl-k"]],[],[[19,23,"pl-smi"]],[[8,19,"pl-c1"],[25,33,"pl-smi"]],[[8,19,"pl-c1"],[25,29,"pl-smi"]],[],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,25,"pl-en"],[26,31,"pl-k"]],[],[[4,6,"pl-k"],[21,24,"pl-c1"],[27,31,"pl-c1"],[37,39,"pl-c1"]],[[8,14,"pl-k"],[15,20,"pl-c1"]],[[4,9,"pl-k"],[10,14,"pl-k"],[19,31,"pl-c1"],[37,40,"pl-c1"],[43,44,"pl-c1"]],[[4,10,"pl-k"],[16,19,"pl-s"],[16,17,"pl-pds"],[18,19,"pl-pds"],[28,31,"pl-s"],[28,29,"pl-pds"],[30,31,"pl-pds"]],[],[],[[0,4,"pl-k"],[5,43,"pl-en"]],[],[[15,19,"pl-k"]],[[20,24,"pl-c1"],[25,30,"pl-c1"]],[[4,7,"pl-k"],[22,27,"pl-c1"],[47,51,"pl-smi"]],[[8,10,"pl-k"],[17,19,"pl-smi"],[23,26,"pl-s"],[23,24,"pl-pds"],[25,26,"pl-pds"]],[[12,14,"pl-k"],[32,35,"pl-c1"]],[[32,36,"pl-c1"],[37,41,"pl-c1"]],[[16,24,"pl-k"]],[],[[12,17,"pl-k"],[37,45,"pl-smi"]],[[12,17,"pl-k"],[33,40,"pl-c1"],[41,48,"pl-s"],[41,42,"pl-pds"],[47,48,"pl-pds"]],[[29,37,"pl-smi"]],[[28,32,"pl-c1"],[47,49,"pl-smi"],[53,56,"pl-s"],[53,54,"pl-pds"],[55,56,"pl-pds"]],[[12,20,"pl-k"]],[],[[8,10,"pl-k"],[17,19,"pl-smi"],[23,26,"pl-s"],[23,24,"pl-pds"],[25,26,"pl-pds"]],[[12,14,"pl-k"],[32,36,"pl-c1"],[41,42,"pl-c1"]],[[32,35,"pl-c1"]],[[12,20,"pl-k"]],[],[],[[8,10,"pl-k"],[17,19,"pl-smi"],[23,26,"pl-s"],[23,24,"pl-pds"],[25,26,"pl-pds"]],[[12,27,"pl-c"],[12,14,"pl-c"]],[[12,14,"pl-k"],[21,25,"pl-smi"],[34,38,"pl-smi"],[40,42,"pl-smi"],[46,49,"pl-s"],[46,47,"pl-pds"],[48,49,"pl-pds"],[58,62,"pl-smi"],[64,72,"pl-smi"],[73,76,"pl-smi"],[86,94,"pl-smi"],[95,98,"pl-smi"],[101,102,"pl-c1"]],[[21,25,"pl-smi"],[27,31,"pl-smi"],[40,44,"pl-smi"],[46,50,"pl-smi"],[52,54,"pl-smi"],[58,61,"pl-s"],[58,59,"pl-pds"],[60,61,"pl-pds"],[70,74,"pl-smi"],[76,80,"pl-smi"],[82,90,"pl-smi"],[91,94,"pl-smi"],[104,112,"pl-smi"],[113,116,"pl-smi"],[119,120,"pl-c1"]],[[21,27,"pl-c1"],[28,33,"pl-s"],[28,29,"pl-pds"],[32,33,"pl-pds"]],[[16,27,"pl-c1"],[33,37,"pl-smi"]],[[16,27,"pl-c1"],[33,37,"pl-smi"]],[[16,24,"pl-k"]],[],[[12,31,"pl-c"],[12,14,"pl-c"]],[[12,14,"pl-k"],[21,29,"pl-smi"],[38,46,"pl-smi"],[48,54,"pl-smi"],[58,66,"pl-c1"],[72,80,"pl-smi"],[95,103,"pl-smi"],[105,108,"pl-c1"],[111,124,"pl-c1"],[125,129,"pl-s"],[125,126,"pl-pds"],[128,129,"pl-pds"]],[[21,27,"pl-c1"],[33,41,"pl-smi"],[43,46,"pl-c1"],[51,54,"pl-s"],[51,52,"pl-pds"],[53,54,"pl-pds"]],[[16,27,"pl-c1"],[33,41,"pl-smi"]],[[16,18,"pl-k"],[20,28,"pl-c1"],[39,43,"pl-smi"],[49,62,"pl-c1"],[68,72,"pl-smi"],[83,87,"pl-smi"],[96,100,"pl-smi"],[102,117,"pl-c1"],[118,134,"pl-s"],[118,119,"pl-pds"],[133,134,"pl-pds"]],[[25,31,"pl-c1"],[37,40,"pl-c1"],[50,54,"pl-smi"],[56,59,"pl-c1"]],[[20,31,"pl-c1"],[37,41,"pl-smi"]],[],[],[[12,14,"pl-k"],[21,25,"pl-smi"],[34,38,"pl-smi"],[40,46,"pl-smi"]],[[21,27,"pl-c1"],[33,36,"pl-c1"],[46,50,"pl-smi"],[52,55,"pl-c1"]],[[16,27,"pl-c1"],[33,37,"pl-smi"]],[],[],[[8,38,"pl-c"],[8,10,"pl-c"]],[[8,13,"pl-k"],[14,18,"pl-k"],[35,38,"pl-c1"],[46,49,"pl-c1"],[52,56,"pl-c1"],[61,62,"pl-c1"]],[[8,10,"pl-k"],[17,23,"pl-smi"],[28,33,"pl-c1"],[39,42,"pl-c1"]],[[15,20,"pl-c1"],[26,29,"pl-c1"],[49,52,"pl-s"],[49,50,"pl-pds"],[51,52,"pl-pds"],[68,71,"pl-s"],[68,69,"pl-pds"],[70,71,"pl-pds"]],[[14,19,"pl-c1"],[25,28,"pl-c1"],[48,51,"pl-s"],[48,49,"pl-pds"],[50,51,"pl-pds"],[67,70,"pl-s"],[67,68,"pl-pds"],[69,70,"pl-pds"]],[[17,21,"pl-smi"],[30,34,"pl-smi"],[36,43,"pl-c1"],[44,48,"pl-s"],[44,45,"pl-pds"],[47,48,"pl-pds"],[58,62,"pl-smi"],[64,68,"pl-smi"],[77,81,"pl-smi"],[83,87,"pl-smi"],[89,95,"pl-smi"]],[[17,23,"pl-c1"],[29,32,"pl-c1"],[42,46,"pl-smi"],[48,50,"pl-smi"],[58,62,"pl-smi"],[64,68,"pl-smi"],[70,73,"pl-c1"]],[[12,23,"pl-c1"],[29,33,"pl-smi"]],[[12,23,"pl-c1"],[29,33,"pl-smi"]],[],[],[[8,10,"pl-k"],[17,19,"pl-smi"],[23,27,"pl-s"],[23,24,"pl-pds"],[24,26,"pl-cce"],[26,27,"pl-pds"],[37,41,"pl-smi"],[50,54,"pl-smi"],[56,58,"pl-smi"],[62,66,"pl-s"],[62,63,"pl-pds"],[63,65,"pl-cce"],[65,66,"pl-pds"]],[[12,20,"pl-k"]],[[8,10,"pl-k"],[13,21,"pl-c1"],[31,35,"pl-smi"]],[[12,20,"pl-k"]],[[8,10,"pl-k"],[17,25,"pl-smi"],[26,29,"pl-smi"],[32,34,"pl-c1"],[43,47,"pl-smi"],[49,57,"pl-smi"],[58,61,"pl-smi"]],[[12,20,"pl-k"]],[],[[8,10,"pl-k"],[17,21,"pl-smi"],[23,25,"pl-smi"],[29,32,"pl-s"],[29,30,"pl-pds"],[31,32,"pl-pds"],[41,48,"pl-c1"],[49,63,"pl-s"],[49,50,"pl-pds"],[62,63,"pl-pds"]],[[12,14,"pl-k"],[21,23,"pl-smi"],[27,30,"pl-s"],[27,28,"pl-pds"],[29,30,"pl-pds"],[51,54,"pl-c1"]],[[16,96,"pl-c"],[16,18,"pl-c"]],[[16,31,"pl-c"],[16,18,"pl-c"]],[[16,19,"pl-k"],[34,35,"pl-c1"]],[[16,21,"pl-k"]],[[16,21,"pl-k"],[38,39,"pl-c1"]],[[20,22,"pl-k"],[31,33,"pl-smi"],[37,40,"pl-s"],[37,38,"pl-pds"],[39,40,"pl-pds"]],[],[[20,24,"pl-k"],[25,27,"pl-k"],[36,38,"pl-smi"],[42,45,"pl-s"],[42,43,"pl-pds"],[44,45,"pl-pds"]],[],[[20,24,"pl-k"],[25,27,"pl-k"],[36,43,"pl-c1"],[44,49,"pl-s"],[44,45,"pl-pds"],[48,49,"pl-pds"]],[[24,29,"pl-k"]],[[35,43,"pl-smi"]],[],[[16,18,"pl-k"],[36,37,"pl-c1"]],[[20,25,"pl-k"],[34,39,"pl-k"]],[[20,24,"pl-k"],[44,48,"pl-smi"]],[[20,25,"pl-k"]],[[24,26,"pl-k"],[36,40,"pl-smi"],[51,54,"pl-c1"],[60,64,"pl-s"],[60,61,"pl-pds"],[63,64,"pl-pds"],[75,77,"pl-smi"],[81,84,"pl-s"],[81,82,"pl-pds"],[83,84,"pl-pds"],[95,97,"pl-smi"],[101,104,"pl-s"],[101,102,"pl-pds"],[103,104,"pl-pds"]],[[41,46,"pl-c1"]],[[24,26,"pl-k"],[36,44,"pl-smi"]],[[28,33,"pl-k"]],[[24,26,"pl-k"],[35,43,"pl-smi"],[45,52,"pl-c1"],[53,59,"pl-s"],[53,54,"pl-pds"],[58,59,"pl-pds"]],[[28,33,"pl-k"]],[[39,47,"pl-smi"]],[],[[58,62,"pl-smi"]],[[20,22,"pl-k"]],[[24,105,"pl-c"],[24,26,"pl-c"]],[[24,32,"pl-k"]],[],[],[],[[17,23,"pl-c1"],[29,32,"pl-c1"],[37,40,"pl-s"],[37,38,"pl-pds"],[39,40,"pl-pds"]],[[12,23,"pl-c1"],[29,33,"pl-smi"]],[[10,14,"pl-k"],[15,17,"pl-k"],[25,27,"pl-smi"],[31,34,"pl-s"],[31,32,"pl-pds"],[33,34,"pl-pds"],[43,45,"pl-smi"],[49,52,"pl-s"],[49,50,"pl-pds"],[51,52,"pl-pds"],[62,64,"pl-smi"],[73,77,"pl-smi"],[79,81,"pl-smi"]],[[17,23,"pl-c1"],[29,32,"pl-c1"],[42,46,"pl-smi"],[48,51,"pl-c1"]],[[12,23,"pl-c1"],[29,33,"pl-smi"]],[[10,14,"pl-k"],[15,17,"pl-k"],[24,26,"pl-smi"],[30,33,"pl-s"],[30,31,"pl-pds"],[32,33,"pl-pds"],[42,46,"pl-smi"],[48,50,"pl-smi"],[54,57,"pl-s"],[54,55,"pl-pds"],[56,57,"pl-pds"]],[[17,23,"pl-c1"],[29,32,"pl-c1"],[42,46,"pl-smi"],[48,51,"pl-c1"]],[[12,23,"pl-c1"],[29,33,"pl-smi"]],[[10,14,"pl-k"],[15,17,"pl-k"],[24,26,"pl-smi"],[30,33,"pl-s"],[30,31,"pl-pds"],[32,33,"pl-pds"],[42,46,"pl-smi"],[48,50,"pl-smi"],[54,57,"pl-s"],[54,55,"pl-pds"],[56,57,"pl-pds"]],[[17,23,"pl-c1"],[29,32,"pl-c1"],[42,46,"pl-smi"],[48,51,"pl-c1"]],[[12,23,"pl-c1"],[29,33,"pl-smi"]],[[10,14,"pl-k"],[15,17,"pl-k"],[25,27,"pl-smi"],[31,34,"pl-s"],[31,32,"pl-pds"],[33,34,"pl-pds"],[43,45,"pl-smi"],[49,52,"pl-s"],[49,50,"pl-pds"],[51,52,"pl-pds"],[62,64,"pl-smi"],[73,77,"pl-smi"],[79,81,"pl-smi"]],[[17,23,"pl-c1"],[29,32,"pl-c1"],[42,46,"pl-smi"],[48,51,"pl-c1"]],[[12,23,"pl-c1"],[29,33,"pl-smi"]],[[12,14,"pl-k"],[21,25,"pl-smi"],[34,38,"pl-smi"],[40,42,"pl-smi"],[46,49,"pl-s"],[46,47,"pl-pds"],[48,49,"pl-pds"],[58,62,"pl-smi"],[64,68,"pl-smi"],[77,81,"pl-smi"],[83,87,"pl-smi"],[89,91,"pl-smi"],[95,98,"pl-s"],[95,96,"pl-pds"],[97,98,"pl-pds"]],[[21,27,"pl-c1"],[33,36,"pl-c1"],[46,50,"pl-smi"],[52,55,"pl-c1"]],[[16,27,"pl-c1"],[33,37,"pl-smi"]],[],[[10,14,"pl-k"],[15,17,"pl-k"],[25,27,"pl-smi"],[31,34,"pl-s"],[31,32,"pl-pds"],[33,34,"pl-pds"],[43,45,"pl-smi"],[49,52,"pl-s"],[49,50,"pl-pds"],[51,52,"pl-pds"],[62,64,"pl-smi"],[73,77,"pl-smi"],[79,81,"pl-smi"]],[[12,14,"pl-k"],[21,29,"pl-smi"],[30,33,"pl-smi"],[36,38,"pl-c1"],[47,51,"pl-smi"],[53,61,"pl-smi"],[62,65,"pl-smi"]],[[16,24,"pl-k"]],[[12,14,"pl-k"],[21,29,"pl-smi"],[38,46,"pl-smi"],[48,54,"pl-smi"]],[[16,24,"pl-k"]],[[12,14,"pl-k"],[21,25,"pl-smi"],[27,31,"pl-smi"],[40,44,"pl-smi"],[46,50,"pl-smi"],[52,58,"pl-smi"]],[[16,24,"pl-k"]],[[17,23,"pl-c1"],[29,32,"pl-c1"],[42,46,"pl-smi"],[48,51,"pl-c1"]],[[12,23,"pl-c1"],[29,33,"pl-smi"]],[],[],[],[],[[0,6,"pl-k"],[7,12,"pl-k"],[25,30,"pl-en"],[31,38,"pl-s"],[31,32,"pl-pds"],[37,38,"pl-pds"]],[[0,6,"pl-k"],[7,12,"pl-k"],[25,28,"pl-en"],[29,34,"pl-s"],[29,30,"pl-pds"],[33,34,"pl-pds"]],[[0,4,"pl-k"],[5,50,"pl-en"]],[],[[4,7,"pl-k"],[23,25,"pl-smi"],[29,32,"pl-s"],[29,30,"pl-pds"],[31,32,"pl-pds"],[45,49,"pl-smi"]],[[8,27,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[12,32,"pl-c1"],[38,41,"pl-c1"]],[[17,19,"pl-smi"],[22,25,"pl-s"],[22,23,"pl-pds"],[24,25,"pl-pds"]],[[8,29,"pl-c"],[8,10,"pl-c"]],[[8,12,"pl-k"],[13,15,"pl-k"],[17,37,"pl-c1"],[43,48,"pl-c1"]],[[17,19,"pl-smi"],[22,25,"pl-s"],[22,23,"pl-pds"],[24,25,"pl-pds"]],[],[[8,10,"pl-k"],[17,19,"pl-smi"],[23,26,"pl-s"],[23,24,"pl-pds"],[25,26,"pl-pds"],[35,39,"pl-smi"],[48,52,"pl-smi"],[54,60,"pl-smi"]],[[17,23,"pl-c1"],[29,33,"pl-smi"],[35,38,"pl-c1"],[44,47,"pl-s"],[44,45,"pl-pds"],[46,47,"pl-pds"],[50,53,"pl-s"],[50,51,"pl-pds"],[52,53,"pl-pds"],[56,59,"pl-s"],[56,57,"pl-pds"],[58,59,"pl-pds"]],[[12,23,"pl-c1"],[29,33,"pl-smi"]],[[10,14,"pl-k"],[15,17,"pl-k"],[24,26,"pl-smi"],[30,33,"pl-s"],[30,31,"pl-pds"],[32,33,"pl-pds"],[42,46,"pl-smi"],[55,59,"pl-smi"],[61,67,"pl-smi"]],[[17,23,"pl-c1"],[24,32,"pl-c1"],[33,44,"pl-en"],[56,59,"pl-en"]],[[12,23,"pl-en"]],[[10,14,"pl-k"]],[[12,14,"pl-k"],[21,29,"pl-smi"],[39,47,"pl-smi"],[49,55,"pl-smi"],[64,72,"pl-smi"],[74,78,"pl-smi"]],[[16,24,"pl-k"]],[[12,14,"pl-k"],[22,26,"pl-smi"],[36,40,"pl-smi"],[42,48,"pl-smi"]],[[16,24,"pl-k"]],[[12,18,"pl-k"],[25,27,"pl-smi"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[21,27,"pl-c1"],[33,37,"pl-smi"],[39,42,"pl-c1"]],[[16,27,"pl-c1"],[33,37,"pl-smi"]],[[16,21,"pl-k"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[21,27,"pl-c1"],[33,35,"pl-smi"],[43,47,"pl-smi"],[49,52,"pl-c1"]],[[16,27,"pl-c1"],[33,37,"pl-smi"]],[[16,21,"pl-k"]],[],[],[],[],[],[[0,4,"pl-k"],[5,45,"pl-en"]],[],[[4,7,"pl-k"],[23,25,"pl-smi"],[29,32,"pl-s"],[29,30,"pl-pds"],[31,32,"pl-pds"],[45,49,"pl-smi"]],[[8,10,"pl-k"],[18,26,"pl-smi"],[36,44,"pl-smi"],[46,52,"pl-smi"]],[[12,20,"pl-k"]],[[8,10,"pl-k"],[18,22,"pl-smi"],[32,36,"pl-smi"],[38,44,"pl-smi"]],[[12,20,"pl-k"]],[],[[8,12,"pl-k"],[13,17,"pl-k"]],[[8,10,"pl-k"],[17,19,"pl-smi"],[23,26,"pl-s"],[23,24,"pl-pds"],[25,26,"pl-pds"]],[[22,32,"pl-c1"],[38,46,"pl-smi"],[48,51,"pl-c1"],[57,67,"pl-c1"],[73,77,"pl-smi"],[79,82,"pl-c1"]],[[8,12,"pl-k"],[13,15,"pl-k"],[22,24,"pl-smi"],[28,31,"pl-s"],[28,29,"pl-pds"],[30,31,"pl-pds"],[40,42,"pl-smi"],[46,49,"pl-s"],[46,47,"pl-pds"],[48,49,"pl-pds"]],[[12,17,"pl-k"],[18,22,"pl-k"],[23,27,"pl-k"],[34,44,"pl-c1"],[50,54,"pl-smi"],[56,59,"pl-c1"]],[[12,14,"pl-k"],[23,24,"pl-c1"]],[[16,21,"pl-k"],[22,41,"pl-smi"],[42,67,"pl-s"],[42,43,"pl-pds"],[66,67,"pl-pds"]],[[12,17,"pl-k"],[18,22,"pl-k"],[23,27,"pl-k"],[34,44,"pl-c1"],[50,58,"pl-smi"],[60,63,"pl-c1"]],[[12,14,"pl-k"],[24,25,"pl-c1"],[56,60,"pl-k"],[61,65,"pl-k"],[68,71,"pl-c1"]],[[16,21,"pl-k"],[22,41,"pl-smi"],[42,61,"pl-s"],[42,43,"pl-pds"],[60,61,"pl-pds"]],[[12,14,"pl-k"],[21,23,"pl-smi"],[27,30,"pl-s"],[27,28,"pl-pds"],[29,30,"pl-pds"]],[],[[12,16,"pl-k"]],[],[[10,14,"pl-k"]],[[12,20,"pl-k"]],[],[[19,27,"pl-smi"]],[[13,19,"pl-c1"],[20,28,"pl-c1"]],[[8,19,"pl-c1"],[25,29,"pl-smi"]],[[8,19,"pl-c1"],[25,29,"pl-smi"]],[],[],[],[[0,4,"pl-k"],[5,42,"pl-en"]],[],[[4,7,"pl-k"],[23,25,"pl-smi"],[29,32,"pl-s"],[29,30,"pl-pds"],[31,32,"pl-pds"],[45,49,"pl-smi"]],[[8,10,"pl-k"],[18,26,"pl-smi"],[36,44,"pl-smi"],[46,52,"pl-smi"]],[[12,20,"pl-k"]],[[8,10,"pl-k"],[18,22,"pl-smi"],[32,36,"pl-smi"],[38,44,"pl-smi"]],[[12,20,"pl-k"]],[],[[8,12,"pl-k"],[13,17,"pl-k"]],[[8,10,"pl-k"],[17,19,"pl-smi"],[23,26,"pl-s"],[23,24,"pl-pds"],[25,26,"pl-pds"]],[[21,31,"pl-c1"],[37,45,"pl-smi"],[47,50,"pl-c1"],[56,66,"pl-c1"],[72,76,"pl-smi"],[78,81,"pl-c1"]],[[8,12,"pl-k"],[13,15,"pl-k"],[22,24,"pl-smi"],[28,31,"pl-s"],[28,29,"pl-pds"],[30,31,"pl-pds"]],[[21,31,"pl-c1"],[37,45,"pl-smi"],[47,50,"pl-c1"],[56,66,"pl-c1"],[72,76,"pl-smi"],[78,81,"pl-c1"]],[[8,12,"pl-k"]],[[12,20,"pl-k"]],[],[[19,27,"pl-smi"]],[[13,19,"pl-c1"],[20,28,"pl-c1"]],[[8,19,"pl-c1"],[25,29,"pl-smi"]],[[8,19,"pl-c1"],[25,29,"pl-smi"]],[],[],[],[[0,4,"pl-k"],[5,41,"pl-en"]],[],[[4,7,"pl-k"],[23,25,"pl-smi"],[29,32,"pl-s"],[29,30,"pl-pds"],[31,32,"pl-pds"],[45,49,"pl-smi"]],[[8,10,"pl-k"],[18,26,"pl-smi"],[36,44,"pl-smi"],[46,52,"pl-smi"]],[[12,20,"pl-k"]],[[8,10,"pl-k"],[18,22,"pl-smi"],[32,36,"pl-smi"],[38,44,"pl-smi"]],[[12,20,"pl-k"]],[],[[8,12,"pl-k"],[13,17,"pl-k"]],[[8,10,"pl-k"],[17,20,"pl-c1"],[26,30,"pl-s"],[26,27,"pl-pds"],[29,30,"pl-pds"]],[[21,31,"pl-c1"],[37,45,"pl-smi"],[47,50,"pl-c1"],[57,67,"pl-c1"],[73,77,"pl-smi"],[79,82,"pl-c1"]],[[8,12,"pl-k"],[13,15,"pl-k"],[22,25,"pl-c1"],[31,35,"pl-s"],[31,32,"pl-pds"],[34,35,"pl-pds"]],[[21,31,"pl-c1"],[37,45,"pl-smi"],[47,50,"pl-c1"],[57,67,"pl-c1"],[73,77,"pl-smi"],[79,82,"pl-c1"]],[[8,12,"pl-k"]],[[12,20,"pl-k"]],[],[[19,27,"pl-smi"]],[[13,19,"pl-c1"],[20,28,"pl-c1"]],[[8,19,"pl-c1"],[25,29,"pl-smi"]],[[8,19,"pl-c1"],[25,29,"pl-smi"]],[],[],[],[[0,6,"pl-k"],[7,12,"pl-k"],[25,30,"pl-en"],[31,39,"pl-s"],[31,32,"pl-pds"],[38,39,"pl-pds"]],[[0,4,"pl-k"],[5,46,"pl-en"]],[],[[4,7,"pl-k"],[23,25,"pl-smi"],[29,32,"pl-s"],[29,30,"pl-pds"],[31,32,"pl-pds"],[45,49,"pl-smi"]],[[8,10,"pl-k"],[12,33,"pl-c1"],[38,43,"pl-c1"]],[[17,23,"pl-c1"],[24,28,"pl-s"],[24,25,"pl-pds"],[27,28,"pl-pds"]],[],[[8,10,"pl-k"],[18,33,"pl-c1"],[34,40,"pl-s"],[34,35,"pl-pds"],[39,40,"pl-pds"]],[[12,20,"pl-k"]],[[8,10,"pl-k"],[18,26,"pl-smi"],[36,44,"pl-smi"],[46,52,"pl-smi"]],[[12,20,"pl-k"]],[[8,10,"pl-k"],[18,22,"pl-smi"],[32,36,"pl-smi"],[38,44,"pl-smi"]],[[12,20,"pl-k"]],[],[[8,11,"pl-k"]],[[8,10,"pl-k"],[17,20,"pl-c1"],[26,30,"pl-s"],[26,27,"pl-pds"],[29,30,"pl-pds"]],[[22,32,"pl-c1"],[38,46,"pl-smi"],[48,51,"pl-c1"],[58,68,"pl-c1"],[74,78,"pl-smi"],[80,83,"pl-c1"]],[[8,12,"pl-k"],[13,15,"pl-k"],[22,25,"pl-c1"],[31,35,"pl-s"],[31,32,"pl-pds"],[34,35,"pl-pds"]],[[22,32,"pl-c1"],[38,46,"pl-smi"],[48,51,"pl-c1"],[58,68,"pl-c1"],[74,78,"pl-smi"],[80,83,"pl-c1"]],[[8,12,"pl-k"],[13,15,"pl-k"],[22,25,"pl-c1"],[31,34,"pl-s"],[31,32,"pl-pds"],[33,34,"pl-pds"]],[[22,32,"pl-c1"],[38,46,"pl-smi"],[48,51,"pl-c1"],[57,67,"pl-c1"],[73,77,"pl-smi"],[79,82,"pl-c1"]],[[8,12,"pl-k"],[13,15,"pl-k"],[22,25,"pl-c1"],[31,35,"pl-s"],[31,32,"pl-pds"],[34,35,"pl-pds"]],[[22,32,"pl-c1"],[38,46,"pl-smi"],[48,51,"pl-c1"],[58,68,"pl-c1"],[74,78,"pl-smi"],[80,83,"pl-c1"]],[[8,12,"pl-k"],[13,15,"pl-k"],[22,25,"pl-c1"],[31,34,"pl-s"],[31,32,"pl-pds"],[33,34,"pl-pds"]],[[22,32,"pl-c1"],[38,46,"pl-smi"],[48,51,"pl-c1"],[57,67,"pl-c1"],[73,77,"pl-smi"],[79,82,"pl-c1"]],[[8,12,"pl-k"],[13,15,"pl-k"],[22,25,"pl-c1"],[31,35,"pl-s"],[31,32,"pl-pds"],[34,35,"pl-pds"]],[[22,32,"pl-c1"],[38,46,"pl-smi"],[48,51,"pl-c1"],[58,68,"pl-c1"],[74,78,"pl-smi"],[80,83,"pl-c1"]],[[8,12,"pl-k"]],[[12,20,"pl-k"]],[],[[19,27,"pl-smi"]],[[13,19,"pl-c1"],[20,28,"pl-c1"]],[[8,19,"pl-c1"],[25,29,"pl-smi"]],[[8,19,"pl-c1"],[25,29,"pl-smi"]],[],[],[],[[0,6,"pl-k"],[7,12,"pl-k"],[25,31,"pl-en"],[32,40,"pl-s"],[32,33,"pl-pds"],[39,40,"pl-pds"]],[[0,6,"pl-k"],[7,12,"pl-k"],[25,30,"pl-en"],[31,38,"pl-s"],[31,32,"pl-pds"],[37,38,"pl-pds"]],[[0,6,"pl-k"],[7,12,"pl-k"],[25,28,"pl-en"],[29,34,"pl-s"],[29,30,"pl-pds"],[33,34,"pl-pds"]],[[0,4,"pl-k"],[5,43,"pl-en"]],[],[[12,17,"pl-k"]],[[4,7,"pl-k"],[9,14,"pl-k"],[15,19,"pl-k"],[26,31,"pl-s"],[26,27,"pl-pds"],[30,31,"pl-pds"]],[[8,13,"pl-k"]],[[8,10,"pl-k"],[19,22,"pl-s"],[19,20,"pl-pds"],[21,22,"pl-pds"]],[[29,35,"pl-c1"]],[[8,12,"pl-k"],[13,15,"pl-k"],[24,27,"pl-s"],[24,25,"pl-pds"],[26,27,"pl-pds"]],[[29,34,"pl-c1"]],[[8,12,"pl-k"]],[[29,32,"pl-c1"]],[[8,11,"pl-k"],[37,39,"pl-smi"],[43,46,"pl-s"],[43,44,"pl-pds"],[45,46,"pl-pds"],[59,63,"pl-smi"]],[[12,14,"pl-k"],[21,23,"pl-smi"],[35,56,"pl-c1"]],[[16,24,"pl-k"]],[[12,14,"pl-k"],[22,30,"pl-smi"],[40,48,"pl-smi"],[50,56,"pl-smi"]],[[16,24,"pl-k"]],[[12,14,"pl-k"],[22,26,"pl-smi"],[36,40,"pl-smi"],[42,48,"pl-smi"]],[[16,24,"pl-k"]],[[12,16,"pl-k"],[17,21,"pl-k"]],[[12,14,"pl-k"],[23,26,"pl-s"],[23,24,"pl-pds"],[25,26,"pl-pds"]],[[26,36,"pl-c1"],[42,50,"pl-smi"],[52,55,"pl-c1"],[61,71,"pl-c1"],[77,81,"pl-smi"],[83,86,"pl-c1"]],[[12,16,"pl-k"],[17,19,"pl-k"],[28,31,"pl-s"],[28,29,"pl-pds"],[30,31,"pl-pds"]],[[26,36,"pl-c1"],[42,50,"pl-smi"],[52,55,"pl-c1"],[61,71,"pl-c1"],[77,81,"pl-smi"],[83,86,"pl-c1"]],[[12,16,"pl-k"],[17,36,"pl-c"],[17,19,"pl-c"],[34,36,"pl-c"]],[[26,36,"pl-c1"],[42,50,"pl-smi"],[52,55,"pl-c1"],[61,71,"pl-c1"],[77,81,"pl-smi"],[83,86,"pl-c1"]],[[23,31,"pl-smi"]],[[17,23,"pl-c1"],[24,32,"pl-c1"]],[[12,23,"pl-c1"],[29,33,"pl-smi"]],[[12,23,"pl-c1"],[29,33,"pl-smi"]],[],[],[],[],[[0,6,"pl-k"],[7,12,"pl-k"],[25,28,"pl-en"],[29,34,"pl-s"],[29,30,"pl-pds"],[33,34,"pl-pds"]],[[0,6,"pl-k"],[7,12,"pl-k"],[25,27,"pl-en"],[28,32,"pl-s"],[28,29,"pl-pds"],[31,32,"pl-pds"]],[[0,4,"pl-k"],[5,45,"pl-en"]],[],[[4,7,"pl-k"],[23,25,"pl-smi"],[29,32,"pl-s"],[29,30,"pl-pds"],[31,32,"pl-pds"],[45,49,"pl-smi"]],[[8,10,"pl-k"],[17,21,"pl-smi"]],[[12,14,"pl-k"],[16,37,"pl-c1"],[42,45,"pl-c1"]],[[21,27,"pl-c1"],[28,32,"pl-s"],[28,29,"pl-pds"],[31,32,"pl-pds"]],[[12,16,"pl-k"],[17,19,"pl-k"],[21,42,"pl-c1"],[47,49,"pl-c1"]],[[21,27,"pl-c1"],[28,32,"pl-s"],[28,29,"pl-pds"],[31,32,"pl-pds"]],[],[[8,10,"pl-k"],[17,20,"pl-c1"],[26,30,"pl-s"],[26,27,"pl-pds"],[29,30,"pl-pds"],[39,42,"pl-c1"],[48,52,"pl-s"],[48,49,"pl-pds"],[51,52,"pl-pds"]],[[12,20,"pl-k"]],[[8,10,"pl-k"],[18,26,"pl-smi"],[36,44,"pl-smi"],[46,52,"pl-smi"]],[[12,20,"pl-k"]],[[8,10,"pl-k"],[18,22,"pl-smi"],[32,36,"pl-smi"],[38,44,"pl-smi"]],[[12,20,"pl-k"]],[],[[8,11,"pl-k"]],[[8,10,"pl-k"],[17,20,"pl-c1"],[26,30,"pl-s"],[26,27,"pl-pds"],[29,30,"pl-pds"]],[[22,32,"pl-c1"],[38,46,"pl-smi"],[48,51,"pl-c1"],[58,68,"pl-c1"],[74,78,"pl-smi"],[80,83,"pl-c1"]],[[8,12,"pl-k"],[13,40,"pl-c"],[13,15,"pl-c"],[38,40,"pl-c"]],[[22,32,"pl-c1"],[38,46,"pl-smi"],[48,51,"pl-c1"],[58,68,"pl-c1"],[74,78,"pl-smi"],[80,83,"pl-c1"]],[],[[19,27,"pl-smi"]],[[13,19,"pl-c1"],[20,28,"pl-c1"]],[[8,19,"pl-c1"],[25,29,"pl-smi"]],[[8,19,"pl-c1"],[25,29,"pl-smi"]],[],[],[],[[0,4,"pl-k"],[5,46,"pl-en"]],[],[[4,8,"pl-k"],[20,25,"pl-c1"]],[[4,7,"pl-k"],[41,43,"pl-smi"],[47,50,"pl-s"],[47,48,"pl-pds"],[49,50,"pl-pds"],[83,87,"pl-smi"]],[[19,24,"pl-c1"]],[[8,10,"pl-k"],[17,20,"pl-c1"],[26,29,"pl-s"],[26,27,"pl-pds"],[28,29,"pl-pds"]],[[12,20,"pl-k"]],[[8,10,"pl-k"],[18,26,"pl-smi"],[36,40,"pl-smi"],[50,54,"pl-smi"],[56,60,"pl-smi"]],[[12,17,"pl-k"],[18,36,"pl-smi"],[37,57,"pl-s"],[37,38,"pl-pds"],[56,57,"pl-pds"]],[[8,10,"pl-k"],[18,26,"pl-smi"],[28,34,"pl-smi"]],[[12,20,"pl-k"]],[[8,10,"pl-k"],[17,21,"pl-smi"],[23,27,"pl-smi"],[29,31,"pl-smi"],[35,38,"pl-s"],[35,36,"pl-pds"],[37,38,"pl-pds"]],[[12,20,"pl-k"]],[[16,21,"pl-k"],[37,45,"pl-smi"]],[[16,21,"pl-k"],[37,41,"pl-smi"]],[[16,21,"pl-k"],[42,46,"pl-smi"],[48,52,"pl-smi"]],[[8,10,"pl-k"]],[[12,17,"pl-k"],[18,36,"pl-smi"],[37,57,"pl-s"],[37,38,"pl-pds"],[56,57,"pl-pds"]],[[8,10,"pl-k"]],[[30,33,"pl-c1"],[39,42,"pl-s"],[39,40,"pl-pds"],[41,42,"pl-pds"]],[[8,19,"pl-c1"],[29,33,"pl-smi"],[36,40,"pl-c"],[36,38,"pl-c"]],[[8,19,"pl-c1"],[29,33,"pl-smi"],[36,40,"pl-c"],[36,38,"pl-c"]],[[8,19,"pl-c1"],[29,32,"pl-c1"],[38,41,"pl-s"],[38,39,"pl-pds"],[40,41,"pl-pds"]],[[8,19,"pl-c1"]],[[19,23,"pl-c1"]],[],[],[],[[0,4,"pl-k"],[5,41,"pl-en"]],[],[],[[4,9,"pl-k"]],[[16,21,"pl-k"]],[[19,23,"pl-smi"]],[[8,10,"pl-k"],[18,25,"pl-smi"]],[[12,23,"pl-c1"]],[],[],[],[[12,43,"pl-en"],[60,65,"pl-k"],[86,91,"pl-k"],[92,96,"pl-k"],[104,109,"pl-k"],[110,114,"pl-k"]],[],[],[],[],[[4,8,"pl-k"],[21,26,"pl-c1"]],[[4,8,"pl-k"],[14,15,"pl-c1"]],[[4,9,"pl-k"],[30,34,"pl-s"],[30,31,"pl-pds"],[31,33,"pl-cce"],[33,34,"pl-pds"],[44,48,"pl-s"],[44,45,"pl-pds"],[45,47,"pl-cce"],[47,48,"pl-pds"],[59,63,"pl-c1"]],[[20,28,"pl-c1"]],[[8,10,"pl-k"],[31,35,"pl-s"],[31,32,"pl-pds"],[32,34,"pl-cce"],[34,35,"pl-pds"]],[[17,18,"pl-c1"]],[[24,29,"pl-c1"]],[[12,20,"pl-k"]],[],[[20,25,"pl-c1"]],[],[[8,10,"pl-k"],[18,22,"pl-s"],[18,19,"pl-pds"],[19,21,"pl-cce"],[21,22,"pl-pds"]],[[12,16,"pl-k"],[29,34,"pl-c1"]],[[12,16,"pl-k"],[24,25,"pl-c1"]],[[12,14,"pl-k"]],[[30,38,"pl-c1"]],[[16,18,"pl-k"],[28,32,"pl-s"],[28,29,"pl-pds"],[29,31,"pl-cce"],[31,32,"pl-pds"],[44,48,"pl-s"],[44,45,"pl-pds"],[45,47,"pl-cce"],[47,48,"pl-pds"]],[[24,29,"pl-c1"],[34,38,"pl-c1"],[41,43,"pl-c1"]],[[41,45,"pl-s"],[41,42,"pl-pds"],[42,44,"pl-cce"],[44,45,"pl-pds"]],[[32,37,"pl-c1"]],[[18,22,"pl-k"],[23,25,"pl-k"],[35,39,"pl-s"],[35,36,"pl-pds"],[36,38,"pl-cce"],[38,39,"pl-pds"]],[],[],[[14,19,"pl-k"],[29,33,"pl-s"],[29,30,"pl-pds"],[30,32,"pl-cce"],[32,33,"pl-pds"]],[[12,14,"pl-k"]],[],[],[],[],[[4,6,"pl-k"],[16,20,"pl-c1"]],[[8,13,"pl-c1"]],[[8,10,"pl-k"]],[[19,22,"pl-smi"]],[[16,20,"pl-smi"],[31,43,"pl-c1"]],[[16,24,"pl-smi"]],[[16,19,"pl-smi"],[22,33,"pl-c1"],[34,59,"pl-s"],[34,35,"pl-pds"],[58,59,"pl-pds"],[71,164,"pl-s"],[71,72,"pl-pds"],[163,164,"pl-pds"]],[[24,33,"pl-c1"]],[],[[8,14,"pl-k"],[15,17,"pl-s"],[15,16,"pl-pds"],[16,17,"pl-pds"]],[],[],[[4,10,"pl-k"]],[],[],[[12,42,"pl-en"],[43,46,"pl-k"],[56,61,"pl-k"]],[],[],[[4,7,"pl-k"],[16,17,"pl-c1"]],[[4,7,"pl-k"],[9,14,"pl-k"],[28,33,"pl-c1"],[50,58,"pl-smi"]],[[8,10,"pl-k"],[13,21,"pl-c1"],[27,32,"pl-c1"]],[[12,17,"pl-k"]],[],[[8,10,"pl-k"],[17,24,"pl-smi"]],[[12,20,"pl-k"]],[[8,10,"pl-k"]],[[12,18,"pl-k"],[19,21,"pl-s"],[19,20,"pl-pds"],[20,21,"pl-pds"]],[[8,10,"pl-k"],[17,22,"pl-c1"]],[[19,22,"pl-s"],[19,20,"pl-pds"],[21,22,"pl-pds"]],[[8,56,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[17,20,"pl-c1"],[23,24,"pl-c1"],[29,33,"pl-s"],[29,30,"pl-pds"],[30,32,"pl-cce"],[32,33,"pl-pds"]],[[19,26,"pl-s"],[19,20,"pl-pds"],[25,26,"pl-pds"],[28,36,"pl-c"],[28,30,"pl-c"]],[[8,12,"pl-k"],[13,15,"pl-k"],[22,28,"pl-smi"]],[[19,26,"pl-s"],[19,20,"pl-pds"],[25,26,"pl-pds"],[28,36,"pl-c"],[28,30,"pl-c"]],[[8,12,"pl-k"]],[[24,27,"pl-c1"]],[[12,24,"pl-c1"],[29,32,"pl-c1"],[42,45,"pl-c1"],[48,54,"pl-c1"],[62,65,"pl-c1"]],[],[],[[4,16,"pl-c1"],[21,26,"pl-c1"],[34,37,"pl-c1"]],[[4,10,"pl-k"]],[],[],[[0,5,"pl-k"],[24,57,"pl-en"],[58,61,"pl-k"],[71,76,"pl-k"]],[],[[4,9,"pl-k"],[27,34,"pl-c1"]],[[4,7,"pl-k"],[16,17,"pl-c1"]],[[4,7,"pl-k"],[9,14,"pl-k"],[28,33,"pl-c1"],[50,58,"pl-smi"]],[[8,10,"pl-k"],[13,21,"pl-c1"],[27,32,"pl-c1"]],[[12,17,"pl-k"]],[[8,10,"pl-k"],[17,24,"pl-smi"]],[[12,20,"pl-k"]],[[8,10,"pl-k"]],[[12,18,"pl-k"],[19,26,"pl-c1"]],[],[],[[4,10,"pl-k"]],[],[],[[0,4,"pl-k"],[5,49,"pl-en"],[50,53,"pl-k"],[63,68,"pl-k"]],[],[[4,9,"pl-k"],[18,23,"pl-k"],[34,45,"pl-c1"]],[[4,10,"pl-k"],[31,33,"pl-smi"],[37,40,"pl-s"],[37,38,"pl-pds"],[39,40,"pl-pds"]],[],[],[[0,8,"pl-k"],[9,12,"pl-k"],[13,44,"pl-en"],[45,50,"pl-k"]],[],[[4,7,"pl-k"],[9,17,"pl-k"],[18,21,"pl-k"],[26,27,"pl-c1"],[39,43,"pl-c1"]],[[8,10,"pl-k"]],[[12,18,"pl-k"]],[],[[10,19,"pl-c1"]],[[4,10,"pl-k"],[17,21,"pl-c1"],[26,28,"pl-c1"]],[],[],[],[[0,9,"pl-k"],[10,19,"pl-en"]],[[4,9,"pl-k"],[10,15,"pl-en"]],[[1,3,"pl-k"]],[[4,9,"pl-k"]],[[1,5,"pl-k"]],[[4,11,"pl-k"]],[[1,6,"pl-k"]],[],[[4,9,"pl-k"],[10,15,"pl-en"]],[[4,11,"pl-k"]],[[8,16,"pl-k"],[17,22,"pl-en"],[65,72,"pl-c1"],[86,93,"pl-c1"],[105,112,"pl-c1"],[154,159,"pl-c1"],[182,187,"pl-c1"]],[],[[8,13,"pl-en"],[14,19,"pl-k"],[74,81,"pl-c1"],[134,138,"pl-c1"]],[[12,14,"pl-k"],[16,24,"pl-c1"],[30,50,"pl-c1"]],[[16,21,"pl-k"],[22,40,"pl-smi"],[41,59,"pl-s"],[41,42,"pl-pds"],[58,59,"pl-pds"]],[[12,14,"pl-k"],[21,23,"pl-smi"],[27,30,"pl-s"],[27,28,"pl-pds"],[29,30,"pl-pds"]],[[16,21,"pl-k"],[22,40,"pl-smi"],[41,59,"pl-s"],[41,42,"pl-pds"],[58,59,"pl-pds"]],[[12,17,"pl-k"],[26,31,"pl-k"]],[[23,27,"pl-smi"]],[[12,14,"pl-k"],[29,32,"pl-c1"],[38,44,"pl-c1"]],[[16,21,"pl-k"],[22,40,"pl-smi"],[41,59,"pl-s"],[41,42,"pl-pds"],[58,59,"pl-pds"]],[[23,27,"pl-smi"]],[[12,14,"pl-k"],[30,34,"pl-smi"],[39,47,"pl-c1"]],[[16,21,"pl-k"],[22,40,"pl-smi"],[41,59,"pl-s"],[41,42,"pl-pds"],[58,59,"pl-pds"]],[[12,14,"pl-k"],[17,28,"pl-c1"]],[[16,21,"pl-k"],[22,40,"pl-smi"],[41,59,"pl-s"],[41,42,"pl-pds"],[58,59,"pl-pds"]],[],[],[[8,13,"pl-en"],[14,19,"pl-k"],[39,44,"pl-k"],[107,114,"pl-c1"],[167,172,"pl-c1"]],[[12,17,"pl-k"],[30,33,"pl-smi"],[41,44,"pl-s"],[41,42,"pl-pds"],[43,44,"pl-pds"]],[[29,35,"pl-smi"],[36,52,"pl-k"],[53,58,"pl-k"],[59,67,"pl-k"],[68,72,"pl-k"],[79,83,"pl-c1"],[92,96,"pl-c1"]],[[28,36,"pl-c1"]],[[12,14,"pl-k"],[17,28,"pl-c1"],[45,51,"pl-c1"]],[[16,21,"pl-k"],[22,40,"pl-smi"],[41,71,"pl-s"],[41,42,"pl-pds"],[70,71,"pl-pds"],[81,90,"pl-s"],[81,82,"pl-pds"],[89,90,"pl-pds"]],[],[],[[8,13,"pl-en"],[14,19,"pl-k"],[47,54,"pl-c1"]],[[13,17,"pl-c1"]],[],[],[[15,23,"pl-k"],[25,30,"pl-k"]],[[12,14,"pl-k"],[16,20,"pl-c1"]],[[30,35,"pl-smi"]],[[44,63,"pl-smi"]],[[16,18,"pl-k"],[26,41,"pl-smi"],[42,47,"pl-c1"]],[[20,31,"pl-c1"],[38,48,"pl-smi"]],[[16,20,"pl-k"]],[[44,59,"pl-smi"]],[[20,31,"pl-c1"],[48,54,"pl-c1"]],[],[[34,43,"pl-smi"]],[],[[12,18,"pl-k"],[20,24,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,31,"pl-en"],[34,39,"pl-k"]],[[12,18,"pl-k"]],[],[],[[8,11,"pl-c"],[8,10,"pl-c"]],[[0,67,"pl-c"]],[[0,50,"pl-c"]],[[0,40,"pl-c"]],[[0,43,"pl-c"]],[[0,44,"pl-c"]],[[0,36,"pl-c"]],[[0,70,"pl-c"]],[[0,11,"pl-c"],[9,11,"pl-c"]],[[8,13,"pl-k"],[22,28,"pl-en"],[41,46,"pl-k"]],[[29,34,"pl-k"]],[[29,34,"pl-k"]],[[67,72,"pl-k"]],[],[],[[22,29,"pl-smi"]],[],[[12,14,"pl-k"],[16,28,"pl-c1"],[42,46,"pl-smi"],[58,62,"pl-smi"],[64,66,"pl-smi"],[70,73,"pl-s"],[70,71,"pl-pds"],[72,73,"pl-pds"]],[[16,72,"pl-c"],[16,18,"pl-c"]],[[16,21,"pl-k"],[30,35,"pl-k"]],[[26,36,"pl-smi"]],[[27,36,"pl-c1"],[37,40,"pl-k"],[41,46,"pl-c1"],[55,58,"pl-c1"],[71,79,"pl-smi"],[89,104,"pl-smi"]],[[33,37,"pl-smi"]],[[27,36,"pl-c1"],[37,40,"pl-k"],[41,46,"pl-c1"],[55,58,"pl-c1"],[71,79,"pl-smi"],[89,104,"pl-smi"]],[[33,37,"pl-smi"]],[[16,19,"pl-k"],[26,27,"pl-c1"]],[[16,21,"pl-k"],[39,40,"pl-c1"]],[[20,22,"pl-k"],[32,34,"pl-smi"],[38,41,"pl-s"],[38,39,"pl-pds"],[40,41,"pl-pds"]],[],[[20,24,"pl-k"],[25,27,"pl-k"],[37,39,"pl-smi"],[43,46,"pl-s"],[43,44,"pl-pds"],[45,46,"pl-pds"]],[],[[20,24,"pl-k"],[25,27,"pl-k"],[37,39,"pl-smi"],[43,46,"pl-s"],[43,44,"pl-pds"],[45,46,"pl-pds"],[51,59,"pl-c1"],[68,76,"pl-smi"]],[[24,29,"pl-k"],[30,35,"pl-smi"],[44,52,"pl-smi"],[54,120,"pl-s"],[54,55,"pl-pds"],[119,120,"pl-pds"]],[[31,40,"pl-c1"],[41,44,"pl-k"],[45,50,"pl-c1"],[59,62,"pl-c1"],[75,83,"pl-smi"],[93,108,"pl-smi"]],[[37,41,"pl-smi"]],[],[[16,18,"pl-k"],[20,26,"pl-c1"],[46,54,"pl-smi"],[67,73,"pl-c1"]],[[38,42,"pl-smi"]],[[14,18,"pl-k"]],[[25,31,"pl-c1"],[50,58,"pl-smi"]],[],[[12,17,"pl-k"],[27,32,"pl-c1"]],[[16,24,"pl-k"],[25,28,"pl-k"],[35,36,"pl-c1"]],[[43,47,"pl-c1"]],[[16,21,"pl-k"]],[[20,22,"pl-k"],[35,37,"pl-smi"],[41,44,"pl-s"],[41,42,"pl-pds"],[43,44,"pl-pds"]],[[24,26,"pl-k"],[33,34,"pl-c1"]],[[28,33,"pl-k"]],[],[[22,26,"pl-k"],[27,29,"pl-k"],[42,44,"pl-smi"],[48,51,"pl-s"],[48,49,"pl-pds"],[50,51,"pl-pds"]],[],[[43,51,"pl-smi"]],[],[[16,18,"pl-k"],[33,56,"pl-c"],[33,35,"pl-c"]],[[43,51,"pl-smi"]],[[35,41,"pl-c1"],[42,46,"pl-c1"]],[[18,22,"pl-k"],[23,25,"pl-k"],[35,37,"pl-smi"],[41,44,"pl-s"],[41,42,"pl-pds"],[43,44,"pl-pds"]],[[40,44,"pl-c1"]],[[16,18,"pl-k"],[46,50,"pl-smi"]],[[20,25,"pl-k"]],[[16,18,"pl-k"],[28,34,"pl-c1"],[48,53,"pl-c1"],[70,73,"pl-c1"],[79,83,"pl-c1"],[85,89,"pl-c1"]],[[20,25,"pl-k"]],[[16,21,"pl-k"],[62,66,"pl-c1"],[78,81,"pl-c1"]],[[16,18,"pl-k"],[36,39,"pl-c1"],[53,59,"pl-smi"],[60,72,"pl-c1"]],[[20,25,"pl-k"]],[[26,36,"pl-smi"]],[[16,21,"pl-k"],[31,34,"pl-smi"],[46,54,"pl-smi"]],[[16,21,"pl-k"]],[[28,33,"pl-k"],[52,56,"pl-smi"]],[[31,40,"pl-c1"],[41,44,"pl-k"],[45,50,"pl-c1"],[62,65,"pl-c1"]],[[28,39,"pl-c1"]],[],[],[[34,40,"pl-c1"],[57,62,"pl-c1"],[68,70,"pl-c1"],[73,75,"pl-c1"]],[[16,21,"pl-k"]],[[16,19,"pl-k"],[51,55,"pl-smi"]],[[31,40,"pl-c1"],[41,44,"pl-k"],[45,50,"pl-c1"],[60,63,"pl-c1"]],[[20,22,"pl-k"],[33,35,"pl-smi"],[39,42,"pl-s"],[39,40,"pl-pds"],[41,42,"pl-pds"]],[],[[20,24,"pl-k"],[25,27,"pl-k"],[38,40,"pl-smi"],[44,47,"pl-s"],[44,45,"pl-pds"],[46,47,"pl-pds"]],[[24,26,"pl-k"],[35,37,"pl-c1"]],[[28,33,"pl-k"]],[],[],[],[[16,18,"pl-k"],[39,41,"pl-c1"]],[[20,25,"pl-k"]],[[16,18,"pl-k"],[27,33,"pl-smi"],[34,40,"pl-c1"],[59,67,"pl-smi"],[80,86,"pl-c1"],[117,124,"pl-c1"]],[[20,25,"pl-k"]],[[34,38,"pl-smi"]],[],[[20,30,"pl-c1"]],[[12,18,"pl-k"]],[],[],[[8,25,"pl-c"],[8,10,"pl-c"],[23,25,"pl-c"]],[[8,13,"pl-k"],[27,31,"pl-en"],[34,39,"pl-k"]],[[12,18,"pl-k"],[31,34,"pl-c1"]],[],[],[[8,44,"pl-c"],[8,10,"pl-c"],[42,44,"pl-c"]],[[8,13,"pl-k"],[24,38,"pl-en"],[41,46,"pl-k"]],[[12,18,"pl-k"],[31,39,"pl-smi"]],[],[],[[8,50,"pl-c"],[8,10,"pl-c"],[48,50,"pl-c"]],[[8,13,"pl-k"],[35,40,"pl-en"],[43,48,"pl-k"]],[[12,18,"pl-k"]],[],[],[[8,44,"pl-c"],[8,10,"pl-c"],[42,44,"pl-c"]],[[8,12,"pl-k"],[13,25,"pl-en"],[28,33,"pl-k"]],[[12,18,"pl-k"],[31,35,"pl-smi"]],[[31,35,"pl-smi"],[37,39,"pl-smi"],[43,46,"pl-s"],[43,44,"pl-pds"],[45,46,"pl-pds"]],[[19,27,"pl-c1"],[52,56,"pl-smi"]],[[31,35,"pl-smi"],[37,45,"pl-smi"],[46,49,"pl-smi"],[65,73,"pl-smi"],[74,77,"pl-smi"],[92,95,"pl-c1"],[98,102,"pl-c1"]],[],[],[[8,36,"pl-c"],[8,10,"pl-c"],[34,36,"pl-c"]],[[8,14,"pl-k"],[15,20,"pl-en"]],[[12,17,"pl-en"],[18,23,"pl-k"],[39,44,"pl-k"]],[[12,17,"pl-k"]],[[12,17,"pl-k"]],[],[],[[8,91,"pl-c"],[8,10,"pl-c"],[89,91,"pl-c"]],[[8,14,"pl-k"],[15,38,"pl-en"],[41,47,"pl-k"],[48,53,"pl-en"]],[[12,35,"pl-en"],[36,41,"pl-k"],[57,62,"pl-k"],[100,141,"pl-s"],[100,101,"pl-pds"],[138,140,"pl-cce"],[140,141,"pl-pds"],[156,161,"pl-s"],[156,157,"pl-pds"],[157,159,"pl-cce"],[160,161,"pl-pds"]],[],[],[[8,67,"pl-c"],[8,10,"pl-c"],[65,67,"pl-c"]],[[8,14,"pl-k"],[15,30,"pl-en"],[33,39,"pl-k"],[40,45,"pl-en"]],[[12,18,"pl-k"],[19,25,"pl-k"],[38,44,"pl-en"],[45,50,"pl-k"],[75,80,"pl-k"]],[[16,22,"pl-k"],[23,59,"pl-s"],[23,24,"pl-pds"],[56,58,"pl-cce"],[58,59,"pl-pds"],[74,80,"pl-s"],[74,75,"pl-pds"],[75,77,"pl-cce"],[79,80,"pl-pds"]],[],[],[[12,27,"pl-en"],[28,33,"pl-k"],[49,54,"pl-k"],[79,84,"pl-k"]],[],[],[[12,18,"pl-k"],[19,25,"pl-k"],[42,57,"pl-en"],[58,63,"pl-k"],[79,84,"pl-k"],[109,114,"pl-k"]],[[16,22,"pl-k"],[23,38,"pl-c1"],[55,75,"pl-s"],[55,56,"pl-pds"],[74,75,"pl-pds"],[85,88,"pl-c1"],[91,94,"pl-s"],[91,92,"pl-pds"],[93,94,"pl-pds"]],[],[],[[12,18,"pl-k"],[19,25,"pl-k"],[42,55,"pl-en"],[56,61,"pl-k"],[77,82,"pl-k"],[107,112,"pl-k"],[128,133,"pl-k"]],[[16,22,"pl-k"],[23,38,"pl-c1"],[55,68,"pl-s"],[55,56,"pl-pds"],[67,68,"pl-pds"],[78,81,"pl-c1"],[85,94,"pl-s"],[85,86,"pl-pds"],[93,94,"pl-pds"],[104,107,"pl-c1"],[112,140,"pl-s"],[112,113,"pl-pds"],[139,140,"pl-pds"]],[],[],[[12,18,"pl-k"],[19,25,"pl-k"],[42,59,"pl-en"],[60,65,"pl-k"],[81,86,"pl-k"]],[[16,22,"pl-k"],[23,38,"pl-c1"],[55,75,"pl-s"],[55,56,"pl-pds"],[74,75,"pl-pds"]],[],[],[[12,18,"pl-k"],[19,25,"pl-k"],[42,62,"pl-en"],[63,68,"pl-k"],[84,89,"pl-k"],[114,119,"pl-k"],[135,140,"pl-k"]],[[16,22,"pl-k"],[23,38,"pl-c1"],[55,70,"pl-s"],[55,56,"pl-pds"],[67,69,"pl-cce"],[69,70,"pl-pds"],[80,83,"pl-c1"],[87,96,"pl-s"],[87,88,"pl-pds"],[95,96,"pl-pds"],[104,110,"pl-c1"],[119,122,"pl-c1"],[125,129,"pl-c1"],[135,169,"pl-s"],[135,136,"pl-pds"],[166,168,"pl-cce"],[168,169,"pl-pds"],[180,265,"pl-s"],[180,181,"pl-pds"],[264,265,"pl-pds"]],[],[],[[4,12,"pl-k"]],[[8,77,"pl-c"],[8,10,"pl-c"],[75,77,"pl-c"]],[[15,28,"pl-en"],[29,34,"pl-k"],[53,58,"pl-k"],[74,78,"pl-k"],[89,94,"pl-k"],[120,127,"pl-c1"],[129,134,"pl-k"]],[[25,28,"pl-k"],[29,34,"pl-c1"]],[[12,14,"pl-k"]],[[21,26,"pl-smi"],[41,44,"pl-c1"]],[[12,14,"pl-k"]],[[21,36,"pl-c1"],[56,60,"pl-c1"]],[[12,18,"pl-k"]],[],[],[[8,12,"pl-k"],[13,24,"pl-en"],[25,30,"pl-k"]],[],[[23,28,"pl-c1"]],[[12,14,"pl-k"]],[[40,47,"pl-c1"]],[[21,26,"pl-c1"]],[[16,22,"pl-k"],[23,28,"pl-c1"]],[],[],[[12,36,"pl-c"],[12,14,"pl-c"]],[[12,14,"pl-k"],[16,28,"pl-c1"]],[[21,26,"pl-c1"]],[[16,21,"pl-k"],[50,54,"pl-smi"],[56,60,"pl-smi"]],[[16,21,"pl-k"],[23,31,"pl-c1"],[62,64,"pl-smi"],[68,71,"pl-s"],[68,69,"pl-pds"],[70,71,"pl-pds"]],[[20,22,"pl-k"],[32,35,"pl-c1"],[41,46,"pl-s"],[41,42,"pl-pds"],[45,46,"pl-pds"]],[[32,36,"pl-smi"],[48,52,"pl-smi"],[54,56,"pl-smi"],[60,63,"pl-s"],[60,61,"pl-pds"],[62,63,"pl-pds"]],[[35,39,"pl-c1"]],[[24,26,"pl-k"],[37,45,"pl-smi"],[47,51,"pl-smi"]],[[33,42,"pl-c1"],[43,56,"pl-s"],[43,44,"pl-pds"],[55,56,"pl-pds"]],[[41,45,"pl-smi"],[47,58,"pl-c"],[47,49,"pl-c"]],[[24,29,"pl-k"]],[],[[20,22,"pl-k"],[32,34,"pl-smi"],[38,41,"pl-s"],[38,39,"pl-pds"],[40,41,"pl-pds"]],[[29,38,"pl-c1"],[47,50,"pl-c1"]],[[37,41,"pl-smi"]],[],[[16,18,"pl-k"],[21,29,"pl-c1"]],[[48,56,"pl-smi"]],[[33,40,"pl-c1"]],[[20,26,"pl-k"],[27,32,"pl-c1"]],[],[[46,50,"pl-smi"],[53,60,"pl-c1"]],[[14,18,"pl-k"]],[[21,26,"pl-c1"]],[[41,45,"pl-smi"]],[],[],[[12,14,"pl-k"],[17,25,"pl-c1"]],[[29,36,"pl-c1"]],[],[[12,17,"pl-k"],[19,27,"pl-c1"]],[[37,41,"pl-smi"]],[[12,18,"pl-k"],[19,23,"pl-c1"]],[],[],[[8,16,"pl-k"],[17,20,"pl-k"],[21,30,"pl-en"],[31,36,"pl-k"],[55,60,"pl-k"]],[[12,20,"pl-k"],[21,24,"pl-k"],[31,32,"pl-c1"]],[[12,17,"pl-k"],[30,34,"pl-c1"]],[[16,18,"pl-k"]],[[20,26,"pl-k"]],[],[],[[12,18,"pl-k"],[20,22,"pl-c1"]],[],[],[[20,25,"pl-k"],[35,53,"pl-en"],[54,59,"pl-k"],[80,84,"pl-k"],[101,106,"pl-k"]],[[12,14,"pl-k"],[30,34,"pl-smi"],[51,55,"pl-smi"],[57,59,"pl-smi"],[63,66,"pl-s"],[63,64,"pl-pds"],[65,66,"pl-pds"],[71,83,"pl-c1"]],[[16,22,"pl-k"],[35,40,"pl-k"]],[],[[24,29,"pl-k"]],[[28,37,"pl-c1"],[51,55,"pl-smi"]],[[12,20,"pl-k"],[21,24,"pl-k"],[31,33,"pl-c1"]],[[12,15,"pl-k"],[17,22,"pl-k"],[49,53,"pl-smi"],[55,59,"pl-smi"],[78,86,"pl-c1"],[115,122,"pl-c1"],[136,140,"pl-smi"]],[[16,18,"pl-k"],[25,27,"pl-smi"],[31,34,"pl-s"],[31,32,"pl-pds"],[33,34,"pl-pds"]],[],[[16,20,"pl-k"],[21,23,"pl-k"],[30,32,"pl-smi"],[36,39,"pl-s"],[36,37,"pl-pds"],[38,39,"pl-pds"]],[[20,22,"pl-k"],[31,33,"pl-c1"]],[[40,49,"pl-c1"]],[[24,29,"pl-k"]],[],[],[[18,22,"pl-k"],[23,25,"pl-k"],[34,36,"pl-c1"],[45,47,"pl-smi"],[51,54,"pl-s"],[51,52,"pl-pds"],[53,54,"pl-pds"],[88,92,"pl-c1"],[102,106,"pl-c1"]],[[36,45,"pl-c1"]],[],[[12,18,"pl-k"]],[],[],[[8,13,"pl-k"],[21,33,"pl-en"]],[[34,39,"pl-k"]],[[34,39,"pl-k"],[48,53,"pl-k"]],[[34,39,"pl-k"]],[[34,39,"pl-k"]],[[34,39,"pl-k"],[52,57,"pl-k"],[84,89,"pl-k"]],[[12,14,"pl-k"],[31,33,"pl-smi"],[37,40,"pl-s"],[37,38,"pl-pds"],[39,40,"pl-pds"]],[[16,22,"pl-k"],[23,30,"pl-c1"]],[[12,20,"pl-k"],[21,24,"pl-k"],[31,32,"pl-c1"]],[[12,17,"pl-k"]],[[12,17,"pl-k"],[19,27,"pl-c1"]],[[16,18,"pl-k"],[25,27,"pl-smi"],[31,34,"pl-s"],[31,32,"pl-pds"],[33,34,"pl-pds"],[38,46,"pl-c1"],[56,60,"pl-smi"],[70,74,"pl-smi"],[76,78,"pl-smi"],[82,85,"pl-s"],[82,83,"pl-pds"],[84,85,"pl-pds"],[89,97,"pl-c1"],[107,111,"pl-smi"],[113,117,"pl-smi"]],[[20,33,"pl-c"],[20,22,"pl-c"]],[[26,40,"pl-c1"]],[[18,22,"pl-k"],[23,25,"pl-k"],[32,34,"pl-smi"],[38,41,"pl-s"],[38,39,"pl-pds"],[40,41,"pl-pds"],[45,53,"pl-c1"],[64,68,"pl-smi"],[78,82,"pl-smi"],[84,86,"pl-smi"],[90,93,"pl-s"],[90,91,"pl-pds"],[92,93,"pl-pds"]],[[26,36,"pl-c1"]],[[18,22,"pl-k"]],[[20,22,"pl-k"],[25,34,"pl-c1"]],[[32,41,"pl-c1"],[42,45,"pl-k"],[46,51,"pl-c1"]],[[24,26,"pl-k"],[33,38,"pl-smi"],[39,44,"pl-c1"],[57,58,"pl-c1"],[67,70,"pl-c1"],[76,79,"pl-s"],[76,77,"pl-pds"],[78,79,"pl-pds"]],[[36,40,"pl-c1"],[44,49,"pl-smi"],[52,56,"pl-c1"]],[],[],[[20,22,"pl-k"],[29,31,"pl-smi"],[35,38,"pl-s"],[35,36,"pl-pds"],[37,38,"pl-pds"]],[],[[20,24,"pl-k"],[25,27,"pl-k"],[34,36,"pl-smi"],[40,43,"pl-s"],[40,41,"pl-pds"],[42,43,"pl-pds"]],[],[[24,26,"pl-k"],[35,37,"pl-c1"]],[[28,33,"pl-k"]],[],[[31,35,"pl-smi"]],[],[],[[12,15,"pl-k"],[39,44,"pl-c1"],[67,71,"pl-smi"]],[[22,30,"pl-smi"],[39,47,"pl-smi"]],[[12,18,"pl-k"],[19,27,"pl-c1"],[46,53,"pl-c1"]],[],[],[[8,13,"pl-k"],[22,28,"pl-en"],[41,46,"pl-k"],[55,60,"pl-k"],[76,81,"pl-k"],[90,95,"pl-k"],[109,114,"pl-k"],[171,176,"pl-k"]],[[27,33,"pl-c1"],[47,50,"pl-c1"]],[],[[22,31,"pl-c1"]],[],[[12,14,"pl-k"],[29,32,"pl-c1"],[38,48,"pl-s"],[38,39,"pl-pds"],[47,48,"pl-pds"]],[[24,33,"pl-c1"],[34,37,"pl-k"],[38,43,"pl-c1"],[44,48,"pl-s"],[44,45,"pl-pds"],[45,47,"pl-cce"],[47,48,"pl-pds"],[53,57,"pl-c1"],[60,64,"pl-s"],[60,61,"pl-pds"],[61,63,"pl-cce"],[63,64,"pl-pds"]],[[16,22,"pl-k"],[36,40,"pl-smi"]],[],[[12,14,"pl-k"],[29,32,"pl-c1"],[38,48,"pl-s"],[38,39,"pl-pds"],[47,48,"pl-pds"]],[[24,33,"pl-c1"],[34,37,"pl-k"],[38,43,"pl-c1"],[44,52,"pl-c1"],[57,61,"pl-smi"]],[[16,22,"pl-k"],[36,40,"pl-smi"]],[],[[12,14,"pl-k"],[29,32,"pl-c1"],[38,51,"pl-s"],[38,39,"pl-pds"],[50,51,"pl-pds"]],[[24,33,"pl-c1"],[34,37,"pl-k"],[38,43,"pl-c1"],[44,52,"pl-c1"],[63,67,"pl-c1"],[70,72,"pl-c1"]],[[16,22,"pl-k"],[36,40,"pl-smi"]],[],[],[[12,17,"pl-k"],[18,22,"pl-k"],[45,54,"pl-smi"],[71,79,"pl-smi"],[80,89,"pl-smi"]],[[45,49,"pl-smi"],[65,73,"pl-smi"],[74,78,"pl-smi"]],[],[[24,29,"pl-k"],[38,54,"pl-c1"],[55,73,"pl-c1"]],[],[[12,14,"pl-k"],[16,28,"pl-c1"]],[[16,54,"pl-c"],[16,18,"pl-c"]],[[16,18,"pl-k"],[33,37,"pl-smi"],[54,58,"pl-smi"],[60,62,"pl-smi"],[66,69,"pl-s"],[66,67,"pl-pds"],[68,69,"pl-pds"]],[[28,37,"pl-c1"],[38,41,"pl-k"],[42,47,"pl-c1"],[61,64,"pl-c1"]],[[20,26,"pl-k"],[40,44,"pl-smi"]],[],[],[[16,35,"pl-c"],[16,18,"pl-c"]],[[16,18,"pl-k"]],[[20,22,"pl-k"],[41,45,"pl-c1"],[55,59,"pl-c1"]],[[24,29,"pl-k"],[30,53,"pl-smi"],[67,75,"pl-smi"],[77,81,"pl-c1"]],[],[[18,22,"pl-k"]],[[20,22,"pl-k"],[41,45,"pl-c1"],[56,60,"pl-c1"],[71,76,"pl-c1"],[81,83,"pl-c1"],[86,88,"pl-c1"]],[[24,29,"pl-k"],[30,53,"pl-smi"],[67,75,"pl-smi"],[77,81,"pl-c1"]],[],[],[],[[12,68,"pl-c"],[12,14,"pl-c"]],[[22,34,"pl-smi"]],[[24,29,"pl-k"]],[[12,14,"pl-k"],[34,39,"pl-c1"]],[[16,20,"pl-k"],[31,36,"pl-c1"]],[[16,19,"pl-k"],[21,26,"pl-k"],[57,58,"pl-c1"],[85,89,"pl-c1"],[104,108,"pl-smi"]],[[20,22,"pl-k"],[29,32,"pl-c1"],[38,51,"pl-s"],[38,39,"pl-pds"],[50,51,"pl-pds"]],[[34,38,"pl-c1"]],[[24,29,"pl-k"]],[],[],[],[[16,21,"pl-k"],[58,62,"pl-c1"],[63,76,"pl-s"],[63,64,"pl-pds"],[75,76,"pl-pds"]],[],[[16,18,"pl-k"],[44,47,"pl-c1"]],[[37,41,"pl-c1"]],[[16,20,"pl-k"]],[[20,25,"pl-k"],[51,57,"pl-smi"]],[[20,28,"pl-k"],[29,32,"pl-k"],[39,40,"pl-c1"]],[[20,23,"pl-k"],[25,30,"pl-k"],[61,62,"pl-c1"],[95,99,"pl-c1"],[114,118,"pl-smi"]],[[24,26,"pl-k"],[33,36,"pl-c1"],[42,55,"pl-s"],[42,43,"pl-pds"],[54,55,"pl-pds"]],[[41,50,"pl-c1"],[51,54,"pl-k"],[55,60,"pl-c1"],[61,69,"pl-c1"],[83,92,"pl-smi"],[93,97,"pl-c1"],[107,115,"pl-smi"]],[[41,50,"pl-smi"],[51,60,"pl-c1"],[66,74,"pl-smi"]],[[26,30,"pl-k"]],[[41,50,"pl-c1"],[51,54,"pl-k"],[55,60,"pl-c1"]],[[28,30,"pl-k"]],[[49,58,"pl-c1"],[72,77,"pl-c1"]],[],[],[],[],[],[],[],[[20,25,"pl-k"],[49,53,"pl-c1"]],[],[[12,21,"pl-c"],[12,14,"pl-c"]],[[12,15,"pl-k"],[17,22,"pl-k"]],[[16,18,"pl-k"],[25,27,"pl-smi"],[31,34,"pl-s"],[31,32,"pl-pds"],[33,34,"pl-pds"]],[[20,33,"pl-c"],[20,22,"pl-c"]],[[20,22,"pl-k"],[24,32,"pl-c1"],[43,47,"pl-smi"],[57,61,"pl-smi"],[70,74,"pl-smi"],[76,78,"pl-smi"],[82,85,"pl-s"],[82,83,"pl-pds"],[84,85,"pl-pds"],[94,98,"pl-smi"],[100,104,"pl-smi"],[113,117,"pl-smi"],[119,123,"pl-smi"],[125,127,"pl-smi"],[131,134,"pl-s"],[131,132,"pl-pds"],[133,134,"pl-pds"]],[[24,26,"pl-k"],[29,37,"pl-c1"],[48,52,"pl-smi"],[54,58,"pl-smi"],[60,64,"pl-smi"]],[[28,33,"pl-k"],[34,68,"pl-smi"],[74,82,"pl-smi"],[84,88,"pl-c1"]],[[24,26,"pl-k"],[45,47,"pl-smi"],[51,54,"pl-s"],[51,52,"pl-pds"],[53,54,"pl-pds"],[63,67,"pl-smi"],[69,73,"pl-smi"],[75,79,"pl-smi"],[81,84,"pl-c1"],[95,99,"pl-c1"]],[[35,40,"pl-k"],[49,62,"pl-c1"],[68,71,"pl-c1"],[80,90,"pl-c1"]],[[36,45,"pl-c1"]],[[34,45,"pl-c1"],[64,68,"pl-smi"],[70,74,"pl-smi"],[76,80,"pl-smi"]],[[28,30,"pl-k"],[40,44,"pl-c1"]],[[40,51,"pl-c1"]],[[28,36,"pl-k"]],[],[[34,44,"pl-smi"]],[[24,26,"pl-k"],[29,38,"pl-c1"]],[[36,45,"pl-c1"],[46,59,"pl-c1"],[65,68,"pl-c1"],[77,87,"pl-c1"]],[[24,28,"pl-k"],[29,31,"pl-k"],[44,49,"pl-c1"],[53,73,"pl-c"],[53,55,"pl-c"]],[[36,45,"pl-c1"],[46,59,"pl-c1"],[60,62,"pl-s"],[60,61,"pl-pds"],[61,62,"pl-pds"],[69,79,"pl-c1"]],[[24,28,"pl-k"]],[[28,31,"pl-k"],[33,38,"pl-k"],[64,70,"pl-c1"],[93,97,"pl-smi"]],[[40,49,"pl-c1"],[50,63,"pl-c1"],[70,73,"pl-c1"],[82,92,"pl-c1"]],[[35,39,"pl-smi"]],[[22,26,"pl-k"]],[[30,41,"pl-c1"]],[],[[20,28,"pl-k"]],[],[],[[16,19,"pl-k"],[35,36,"pl-c1"]],[[16,21,"pl-k"],[46,50,"pl-smi"]],[[16,21,"pl-k"],[23,31,"pl-c1"],[61,63,"pl-smi"],[67,70,"pl-s"],[67,68,"pl-pds"],[69,70,"pl-pds"]],[[43,47,"pl-smi"]],[],[],[[16,18,"pl-k"],[36,37,"pl-c1"],[46,50,"pl-smi"],[52,60,"pl-smi"],[61,64,"pl-smi"],[67,68,"pl-c1"],[77,81,"pl-smi"],[83,87,"pl-smi"],[89,97,"pl-smi"],[98,101,"pl-smi"]],[[20,36,"pl-c"],[20,22,"pl-c"]],[[28,37,"pl-c1"],[38,51,"pl-c1"],[52,56,"pl-s"],[52,53,"pl-pds"],[55,56,"pl-pds"],[63,73,"pl-c1"]],[],[[20,28,"pl-k"]],[],[],[[16,18,"pl-k"],[36,37,"pl-c1"],[46,54,"pl-smi"],[55,58,"pl-smi"],[61,62,"pl-c1"],[70,74,"pl-smi"],[76,84,"pl-smi"],[85,88,"pl-smi"]],[[28,37,"pl-c1"],[38,41,"pl-k"],[42,47,"pl-c1"]],[[31,35,"pl-smi"]],[[20,28,"pl-k"]],[],[],[[27,31,"pl-smi"]],[[16,18,"pl-k"]],[[28,37,"pl-c1"],[38,41,"pl-k"],[42,47,"pl-c1"],[54,62,"pl-smi"]],[[20,25,"pl-k"]],[],[[16,18,"pl-k"],[25,27,"pl-smi"],[31,34,"pl-s"],[31,32,"pl-pds"],[33,34,"pl-pds"]],[[20,33,"pl-c"],[20,22,"pl-c"]],[[26,40,"pl-c1"],[59,67,"pl-smi"]],[[18,22,"pl-k"]],[[20,36,"pl-c"],[20,22,"pl-c"]],[[26,36,"pl-c1"],[55,63,"pl-smi"]],[],[],[],[[12,14,"pl-k"],[17,29,"pl-c1"]],[[16,19,"pl-k"],[63,67,"pl-smi"],[78,83,"pl-c1"],[103,107,"pl-smi"]],[[25,30,"pl-smi"],[46,49,"pl-c1"]],[],[],[],[[12,14,"pl-k"],[34,39,"pl-c1"]],[[33,37,"pl-c1"]],[],[[12,18,"pl-k"],[19,31,"pl-c1"],[53,57,"pl-c1"],[61,65,"pl-smi"],[81,85,"pl-smi"]],[],[],[[8,13,"pl-k"],[21,41,"pl-en"],[78,83,"pl-k"],[99,104,"pl-k"],[117,122,"pl-k"],[141,146,"pl-k"],[186,191,"pl-k"],[204,209,"pl-k"],[236,241,"pl-k"]],[[12,14,"pl-k"],[23,28,"pl-c1"],[39,44,"pl-c1"],[48,52,"pl-smi"],[61,65,"pl-smi"],[74,78,"pl-smi"],[80,82,"pl-smi"],[86,89,"pl-s"],[86,87,"pl-pds"],[88,89,"pl-pds"]],[[24,34,"pl-c1"]],[[16,22,"pl-k"],[28,32,"pl-smi"]],[],[],[[12,14,"pl-k"],[17,25,"pl-c1"],[36,40,"pl-smi"]],[[24,34,"pl-c1"]],[[16,22,"pl-k"],[28,32,"pl-smi"]],[],[],[[12,17,"pl-k"],[55,59,"pl-c1"],[65,70,"pl-c1"],[74,77,"pl-c1"]],[[12,14,"pl-k"],[29,32,"pl-c1"],[53,57,"pl-c1"],[63,68,"pl-c1"],[72,75,"pl-c1"],[97,100,"pl-c1"]],[[24,34,"pl-c1"]],[[16,22,"pl-k"],[28,32,"pl-smi"]],[],[],[[12,17,"pl-k"],[43,49,"pl-smi"]],[[12,14,"pl-k"],[29,41,"pl-c1"]],[[24,34,"pl-c1"]],[[16,22,"pl-k"],[28,32,"pl-smi"]],[],[],[[22,27,"pl-smi"]],[[18,27,"pl-c1"],[28,31,"pl-k"],[32,37,"pl-c1"],[43,48,"pl-c1"],[52,55,"pl-c1"],[64,72,"pl-smi"]],[],[[12,17,"pl-k"],[26,31,"pl-k"],[39,51,"pl-c1"],[70,74,"pl-smi"]],[[12,14,"pl-k"]],[[16,22,"pl-k"],[28,32,"pl-smi"]],[[20,30,"pl-c1"]],[[20,31,"pl-c1"],[40,44,"pl-c1"]],[[24,30,"pl-c1"],[50,56,"pl-c1"]],[[12,18,"pl-k"],[25,29,"pl-smi"]],[],[],[[8,13,"pl-k"],[21,32,"pl-en"],[52,57,"pl-k"],[73,78,"pl-k"],[91,96,"pl-k"],[115,120,"pl-k"],[160,165,"pl-k"],[178,183,"pl-k"],[210,215,"pl-k"]],[[12,25,"pl-c"],[12,14,"pl-c"]],[[12,14,"pl-k"],[22,26,"pl-smi"]],[[24,33,"pl-c1"],[34,47,"pl-c1"],[53,56,"pl-c1"],[65,69,"pl-c1"]],[[16,22,"pl-k"],[28,32,"pl-smi"]],[],[],[[12,32,"pl-c"],[12,14,"pl-c"]],[],[[26,30,"pl-smi"]],[[16,18,"pl-k"],[25,28,"pl-c1"],[34,46,"pl-s"],[34,35,"pl-pds"],[45,46,"pl-pds"]],[[20,22,"pl-k"],[24,32,"pl-c1"],[43,47,"pl-smi"],[57,61,"pl-smi"],[63,66,"pl-c1"],[72,75,"pl-s"],[72,73,"pl-pds"],[74,75,"pl-pds"]],[[35,39,"pl-smi"]],[[24,27,"pl-k"],[36,37,"pl-c1"]],[[24,29,"pl-k"],[31,39,"pl-c1"],[50,54,"pl-smi"]],[[28,30,"pl-k"],[37,41,"pl-smi"],[43,46,"pl-c1"],[52,55,"pl-s"],[52,53,"pl-pds"],[54,55,"pl-pds"]],[],[[28,32,"pl-k"],[33,35,"pl-k"],[42,46,"pl-smi"],[48,51,"pl-c1"],[57,60,"pl-s"],[57,58,"pl-pds"],[59,60,"pl-pds"]],[],[[28,30,"pl-k"],[41,42,"pl-c1"]],[[30,36,"pl-k"],[42,46,"pl-smi"],[48,52,"pl-smi"]],[[39,43,"pl-smi"]],[[28,30,"pl-k"],[48,52,"pl-c1"],[62,66,"pl-c1"],[88,93,"pl-c1"],[97,101,"pl-smi"],[103,106,"pl-c1"],[112,115,"pl-s"],[112,113,"pl-pds"],[114,115,"pl-pds"]],[[36,47,"pl-c1"],[108,116,"pl-smi"]],[],[],[[20,25,"pl-k"],[26,31,"pl-smi"],[37,45,"pl-smi"],[47,92,"pl-s"],[47,48,"pl-pds"],[91,92,"pl-pds"]],[],[[16,18,"pl-k"],[20,29,"pl-c1"]],[[20,22,"pl-k"],[29,32,"pl-c1"],[38,51,"pl-s"],[38,39,"pl-pds"],[50,51,"pl-pds"],[60,65,"pl-c1"],[79,84,"pl-c1"],[98,103,"pl-c1"],[107,110,"pl-c1"],[116,119,"pl-s"],[116,117,"pl-pds"],[118,119,"pl-pds"]],[[29,45,"pl-c1"],[56,72,"pl-c1"],[76,79,"pl-c1"],[85,88,"pl-s"],[85,86,"pl-pds"],[87,88,"pl-pds"]],[[32,43,"pl-c1"],[52,56,"pl-c1"]],[[20,26,"pl-k"],[27,47,"pl-c1"]],[],[],[],[[12,22,"pl-c"],[12,14,"pl-c"]],[[12,17,"pl-k"],[55,59,"pl-c1"],[65,68,"pl-c1"]],[[12,14,"pl-k"],[29,32,"pl-c1"],[53,57,"pl-c1"],[63,66,"pl-c1"],[88,91,"pl-c1"]],[[38,53,"pl-c1"]],[[32,38,"pl-c1"],[44,47,"pl-c1"]],[],[[16,21,"pl-k"],[47,53,"pl-smi"]],[[16,18,"pl-k"],[33,45,"pl-c1"]],[[30,34,"pl-smi"]],[[32,38,"pl-c1"]],[[20,26,"pl-k"],[27,47,"pl-c1"]],[],[[16,18,"pl-k"],[21,29,"pl-c1"],[40,44,"pl-smi"],[54,58,"pl-smi"],[60,62,"pl-smi"],[66,69,"pl-s"],[66,67,"pl-pds"],[68,69,"pl-pds"]],[[28,37,"pl-c1"],[38,51,"pl-c1"],[57,60,"pl-c1"],[69,73,"pl-c1"]],[[20,26,"pl-k"],[32,36,"pl-smi"]],[],[[26,32,"pl-smi"]],[[23,32,"pl-c1"],[33,36,"pl-k"],[37,42,"pl-c1"]],[[16,21,"pl-k"],[30,35,"pl-k"],[43,55,"pl-c1"],[75,79,"pl-smi"]],[[16,18,"pl-k"]],[[28,37,"pl-c1"],[38,51,"pl-c1"],[57,60,"pl-c1"],[69,73,"pl-c1"]],[[20,26,"pl-k"],[32,36,"pl-smi"]],[],[[26,30,"pl-smi"]],[[28,34,"pl-c1"],[54,60,"pl-c1"]],[[16,22,"pl-k"],[23,43,"pl-c1"]],[],[],[[12,14,"pl-k"],[21,24,"pl-c1"],[30,37,"pl-c1"]],[[16,21,"pl-k"],[30,35,"pl-k"],[48,52,"pl-smi"]],[[16,21,"pl-k"],[30,35,"pl-k"],[56,60,"pl-smi"],[63,70,"pl-c1"]],[[16,21,"pl-k"],[30,35,"pl-k"],[56,60,"pl-smi"],[63,70,"pl-c1"]],[[16,21,"pl-k"],[40,47,"pl-c1"]],[[16,21,"pl-k"],[41,48,"pl-c1"]],[[16,18,"pl-k"],[20,28,"pl-c1"],[49,51,"pl-smi"],[55,58,"pl-s"],[55,56,"pl-pds"],[57,58,"pl-pds"],[68,72,"pl-smi"],[82,84,"pl-smi"],[88,91,"pl-s"],[88,89,"pl-pds"],[90,91,"pl-pds"]],[],[],[[18,22,"pl-k"],[23,25,"pl-k"],[27,35,"pl-c1"],[55,59,"pl-smi"]],[],[],[[16,18,"pl-k"]],[[54,57,"pl-c1"]],[[20,22,"pl-k"],[34,38,"pl-smi"],[52,56,"pl-smi"],[58,60,"pl-smi"],[64,67,"pl-s"],[64,65,"pl-pds"],[66,67,"pl-pds"],[81,85,"pl-smi"],[87,91,"pl-smi"],[105,109,"pl-smi"],[111,115,"pl-smi"],[117,119,"pl-smi"],[123,126,"pl-s"],[123,124,"pl-pds"],[125,126,"pl-pds"],[140,144,"pl-smi"],[146,150,"pl-smi"],[152,156,"pl-smi"],[170,174,"pl-smi"],[176,180,"pl-smi"],[182,186,"pl-smi"],[188,192,"pl-smi"],[196,204,"pl-c1"],[224,228,"pl-smi"],[230,234,"pl-smi"],[236,240,"pl-smi"]],[[34,38,"pl-smi"]],[[24,26,"pl-k"],[28,37,"pl-c1"]],[[45,50,"pl-c1"],[54,57,"pl-c1"]],[[24,26,"pl-k"],[28,37,"pl-c1"],[55,59,"pl-smi"],[61,65,"pl-smi"],[67,71,"pl-smi"]],[[46,51,"pl-c1"],[55,58,"pl-c1"]],[[24,28,"pl-k"]],[[51,55,"pl-smi"],[57,61,"pl-smi"],[63,67,"pl-smi"],[69,72,"pl-c1"]],[[46,50,"pl-smi"],[52,56,"pl-smi"],[58,62,"pl-smi"]],[],[[20,25,"pl-k"],[26,30,"pl-k"],[45,49,"pl-c1"],[71,74,"pl-c1"]],[[28,37,"pl-c1"],[38,51,"pl-c1"],[58,61,"pl-s"],[58,59,"pl-pds"],[60,61,"pl-pds"],[64,67,"pl-s"],[64,65,"pl-pds"],[66,67,"pl-pds"],[74,78,"pl-c1"]],[[20,26,"pl-k"],[38,42,"pl-smi"]],[],[],[],[[20,29,"pl-c1"],[30,43,"pl-c1"],[49,52,"pl-c1"],[61,65,"pl-c1"]],[[12,18,"pl-k"],[24,28,"pl-smi"]],[],[],[[8,12,"pl-k"],[13,22,"pl-en"],[42,47,"pl-k"],[60,65,"pl-k"],[78,83,"pl-k"],[110,115,"pl-k"]],[[12,14,"pl-k"],[22,26,"pl-smi"]],[[16,22,"pl-k"],[23,28,"pl-c1"]],[],[[12,17,"pl-k"],[18,26,"pl-k"],[27,30,"pl-k"],[39,48,"pl-c1"],[54,57,"pl-c1"]],[[12,14,"pl-k"],[30,34,"pl-c1"]],[[16,22,"pl-k"],[23,28,"pl-c1"]],[],[[12,39,"pl-c"],[12,14,"pl-c"]],[[12,14,"pl-k"],[36,38,"pl-c1"],[58,62,"pl-c1"]],[[16,22,"pl-k"],[23,27,"pl-c1"]],[],[[12,15,"pl-k"],[17,22,"pl-k"],[63,67,"pl-smi"],[103,105,"pl-c1"],[125,129,"pl-smi"]],[[24,33,"pl-c1"],[34,37,"pl-k"],[38,43,"pl-c1"]],[],[[12,18,"pl-k"],[19,23,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,22,"pl-en"],[42,47,"pl-k"],[60,65,"pl-k"],[81,86,"pl-k"],[105,110,"pl-k"],[150,155,"pl-k"],[168,173,"pl-k"],[200,205,"pl-k"]],[[12,14,"pl-k"],[22,26,"pl-smi"]],[[16,22,"pl-k"],[23,28,"pl-c1"]],[[12,17,"pl-k"],[18,26,"pl-k"],[27,30,"pl-k"],[39,48,"pl-c1"],[54,57,"pl-c1"]],[[12,14,"pl-k"],[30,34,"pl-c1"]],[[16,22,"pl-k"],[23,28,"pl-c1"]],[[12,14,"pl-k"],[36,38,"pl-c1"],[58,62,"pl-c1"],[66,93,"pl-c"],[66,68,"pl-c"]],[[16,22,"pl-k"],[23,27,"pl-c1"]],[[12,15,"pl-k"],[17,22,"pl-k"],[63,67,"pl-smi"],[103,105,"pl-c1"]],[[16,21,"pl-k"],[59,63,"pl-c1"],[72,75,"pl-c1"]],[[16,18,"pl-k"],[33,36,"pl-c1"],[51,65,"pl-c1"],[71,77,"pl-smi"],[91,94,"pl-c1"],[100,104,"pl-c1"],[125,129,"pl-c1"],[138,141,"pl-c1"],[163,166,"pl-c1"]],[[20,25,"pl-k"],[65,163,"pl-c"],[65,67,"pl-c"]],[[33,39,"pl-smi"],[40,46,"pl-c1"]],[[18,22,"pl-k"]],[[28,37,"pl-c1"],[38,51,"pl-c1"],[60,63,"pl-c1"],[72,82,"pl-c1"]],[[28,32,"pl-c1"],[36,41,"pl-smi"],[52,57,"pl-smi"]],[[37,41,"pl-smi"]],[],[],[[12,14,"pl-k"],[21,36,"pl-smi"],[48,52,"pl-c1"]],[[24,28,"pl-c1"],[32,47,"pl-smi"],[50,54,"pl-c1"]],[[12,18,"pl-k"],[19,23,"pl-c1"]],[],[],[[8,11,"pl-c"],[8,10,"pl-c"]],[[0,27,"pl-c"]],[[0,47,"pl-c"]],[[0,53,"pl-c"]],[[0,37,"pl-c"]],[[0,76,"pl-c"]],[[0,77,"pl-c"]],[[0,36,"pl-c"]],[[0,11,"pl-c"],[9,11,"pl-c"]],[[8,13,"pl-k"],[21,31,"pl-en"],[51,56,"pl-k"],[72,77,"pl-k"],[90,95,"pl-k"],[135,140,"pl-k"],[153,158,"pl-k"],[185,190,"pl-k"]],[[22,35,"pl-smi"]],[[12,17,"pl-k"],[36,73,"pl-c"],[36,38,"pl-c"]],[[18,29,"pl-c1"],[56,60,"pl-smi"]],[],[[20,24,"pl-s"],[20,21,"pl-pds"],[21,23,"pl-cce"],[23,24,"pl-pds"]],[[12,15,"pl-k"],[17,22,"pl-k"],[54,60,"pl-c1"]],[[32,36,"pl-smi"]],[[33,36,"pl-c1"]],[[16,18,"pl-k"],[37,52,"pl-smi"]],[[28,31,"pl-s"],[28,29,"pl-pds"],[30,31,"pl-pds"]],[],[[20,24,"pl-s"],[20,21,"pl-pds"],[21,23,"pl-cce"],[23,24,"pl-pds"]],[[20,29,"pl-c1"],[30,43,"pl-c1"],[44,56,"pl-c1"],[62,65,"pl-c1"],[75,85,"pl-c1"]],[[12,18,"pl-k"]],[],[],[[8,11,"pl-c"],[8,10,"pl-c"]],[[0,28,"pl-c"]],[[0,87,"pl-c"]],[[0,47,"pl-c"]],[[0,53,"pl-c"]],[[0,39,"pl-c"]],[[0,36,"pl-c"]],[[0,76,"pl-c"]],[[0,77,"pl-c"]],[[0,32,"pl-c"]],[[0,11,"pl-c"],[9,11,"pl-c"]],[[8,13,"pl-k"],[21,35,"pl-en"],[55,60,"pl-k"],[76,81,"pl-k"],[94,99,"pl-k"],[118,123,"pl-k"],[163,168,"pl-k"],[181,186,"pl-k"],[213,218,"pl-k"]],[[31,35,"pl-c1"]],[[12,14,"pl-k"]],[[16,21,"pl-k"],[22,37,"pl-smi"],[43,51,"pl-smi"],[53,57,"pl-c1"],[61,85,"pl-s"],[61,62,"pl-pds"],[84,85,"pl-pds"]],[[12,14,"pl-k"],[17,25,"pl-c1"],[36,40,"pl-smi"],[46,54,"pl-c1"],[65,69,"pl-smi"],[71,75,"pl-smi"]],[[16,21,"pl-k"],[22,56,"pl-smi"],[62,70,"pl-smi"],[72,76,"pl-c1"]],[],[[12,17,"pl-k"],[18,22,"pl-k"],[55,62,"pl-c1"],[63,73,"pl-s"],[63,64,"pl-pds"],[72,73,"pl-pds"],[81,84,"pl-c1"],[90,94,"pl-s"],[90,91,"pl-pds"],[93,94,"pl-pds"],[101,104,"pl-c1"],[110,114,"pl-s"],[110,111,"pl-pds"],[113,114,"pl-pds"]],[[12,17,"pl-k"],[18,22,"pl-k"],[55,71,"pl-c1"],[75,78,"pl-c1"],[85,99,"pl-c1"],[103,106,"pl-c1"]],[[12,14,"pl-k"],[20,24,"pl-smi"],[32,38,"pl-smi"],[45,47,"pl-smi"],[51,54,"pl-s"],[51,52,"pl-pds"],[53,54,"pl-pds"],[62,65,"pl-c1"],[68,73,"pl-c1"]],[[16,21,"pl-k"],[22,54,"pl-smi"],[60,68,"pl-smi"],[70,74,"pl-c1"]],[],[[20,25,"pl-k"],[35,39,"pl-smi"],[41,45,"pl-smi"]],[[12,14,"pl-k"],[20,24,"pl-smi"],[32,38,"pl-smi"],[45,47,"pl-smi"],[55,62,"pl-c1"],[63,67,"pl-s"],[63,64,"pl-pds"],[66,67,"pl-pds"]],[[16,21,"pl-k"],[22,54,"pl-smi"],[60,68,"pl-smi"],[70,74,"pl-c1"]],[],[[12,14,"pl-k"],[50,52,"pl-smi"],[56,59,"pl-s"],[56,57,"pl-pds"],[58,59,"pl-pds"]],[[51,53,"pl-smi"],[57,60,"pl-s"],[57,58,"pl-pds"],[59,60,"pl-pds"]],[[16,21,"pl-k"],[22,52,"pl-smi"],[58,66,"pl-smi"],[68,72,"pl-c1"]],[],[[12,93,"pl-c"],[12,14,"pl-c"]],[[12,14,"pl-k"],[53,59,"pl-smi"],[67,71,"pl-smi"]],[[16,21,"pl-k"],[22,52,"pl-smi"],[58,66,"pl-smi"],[68,72,"pl-c1"]],[],[[22,29,"pl-smi"]],[[12,17,"pl-k"],[38,42,"pl-smi"]],[],[[12,14,"pl-k"]],[[16,136,"pl-c"],[16,18,"pl-c"]],[[16,102,"pl-c"],[16,18,"pl-c"]],[[16,18,"pl-k"],[20,29,"pl-c1"]],[[20,23,"pl-k"],[44,49,"pl-c1"],[63,67,"pl-smi"]],[[27,35,"pl-smi"]],[[18,22,"pl-k"]],[[28,37,"pl-c1"],[38,41,"pl-k"],[42,47,"pl-c1"]],[[28,32,"pl-c1"],[36,44,"pl-smi"]],[],[[24,34,"pl-c1"]],[[14,18,"pl-k"]],[],[],[[16,21,"pl-k"],[22,26,"pl-k"],[55,60,"pl-c1"],[69,72,"pl-c1"],[88,92,"pl-c1"],[95,97,"pl-c1"]],[],[[16,18,"pl-k"],[20,29,"pl-c1"]],[[20,22,"pl-k"],[32,37,"pl-c1"]],[[35,38,"pl-c1"]],[[20,24,"pl-k"],[25,27,"pl-k"],[43,45,"pl-smi"],[49,52,"pl-s"],[49,50,"pl-pds"],[51,52,"pl-pds"]],[[32,35,"pl-s"],[32,33,"pl-pds"],[34,35,"pl-pds"]],[[22,26,"pl-k"]],[[35,38,"pl-c1"],[51,57,"pl-c1"],[61,64,"pl-c1"]],[[32,43,"pl-c1"],[52,57,"pl-c1"]],[],[[18,22,"pl-k"]],[[31,34,"pl-c1"],[42,45,"pl-c1"]],[],[],[[16,70,"pl-c"],[16,18,"pl-c"]],[[16,18,"pl-k"],[23,31,"pl-smi"],[38,46,"pl-smi"],[48,51,"pl-c1"],[57,61,"pl-s"],[57,58,"pl-pds"],[58,60,"pl-cce"],[60,61,"pl-pds"]],[[20,22,"pl-k"],[30,31,"pl-c1"],[36,39,"pl-s"],[36,37,"pl-pds"],[38,39,"pl-pds"],[49,53,"pl-c1"],[59,60,"pl-c1"]],[[24,29,"pl-k"],[30,67,"pl-smi"],[73,81,"pl-smi"],[83,87,"pl-c1"]],[[20,22,"pl-k"],[30,31,"pl-c1"],[36,39,"pl-s"],[36,37,"pl-pds"],[38,39,"pl-pds"],[49,53,"pl-c1"],[59,60,"pl-c1"]],[[24,29,"pl-k"],[30,67,"pl-smi"],[73,81,"pl-smi"],[83,87,"pl-c1"]],[],[],[[16,18,"pl-k"],[39,44,"pl-c1"],[55,63,"pl-smi"],[65,68,"pl-c1"],[74,77,"pl-s"],[74,75,"pl-pds"],[76,77,"pl-pds"]],[[28,39,"pl-c1"]],[[16,20,"pl-k"],[21,23,"pl-k"],[34,37,"pl-s"],[34,35,"pl-pds"],[36,37,"pl-pds"],[48,52,"pl-c1"],[70,73,"pl-c1"]],[[23,29,"pl-c1"]],[[20,23,"pl-k"],[44,49,"pl-c1"],[63,67,"pl-smi"]],[[27,35,"pl-smi"]],[[28,38,"pl-c1"]],[[18,22,"pl-k"],[23,25,"pl-k"],[27,35,"pl-c1"],[51,59,"pl-c1"],[72,76,"pl-smi"],[90,92,"pl-smi"],[96,99,"pl-s"],[96,97,"pl-pds"],[98,99,"pl-pds"],[112,116,"pl-smi"],[118,120,"pl-smi"],[124,127,"pl-s"],[124,125,"pl-pds"],[126,127,"pl-pds"]],[[30,37,"pl-smi"]],[[28,37,"pl-c1"],[38,41,"pl-k"],[42,47,"pl-c1"],[60,68,"pl-smi"]],[[30,44,"pl-c1"]],[[28,39,"pl-c1"]],[[28,38,"pl-c1"]],[[18,22,"pl-k"]],[[28,39,"pl-c1"]],[[30,36,"pl-smi"]],[[27,36,"pl-c1"],[37,40,"pl-k"],[41,46,"pl-c1"],[59,67,"pl-smi"]],[[20,63,"pl-c"],[20,22,"pl-c"]],[[20,22,"pl-k"],[32,37,"pl-c1"],[43,51,"pl-c1"],[57,61,"pl-smi"],[69,73,"pl-smi"],[75,77,"pl-smi"],[79,82,"pl-s"],[79,80,"pl-pds"],[81,82,"pl-pds"]],[[24,29,"pl-k"],[67,71,"pl-c1"]],[[24,26,"pl-k"],[41,44,"pl-c1"],[65,69,"pl-c1"],[95,98,"pl-c1"],[108,114,"pl-smi"],[115,127,"pl-c1"]],[[28,33,"pl-k"],[42,47,"pl-k"],[55,67,"pl-c1"],[85,89,"pl-smi"]],[[28,30,"pl-k"]],[[48,52,"pl-smi"]],[],[],[[20,31,"pl-c1"],[52,58,"pl-c1"]],[[20,23,"pl-k"],[44,49,"pl-c1"],[63,67,"pl-smi"]],[[27,35,"pl-smi"]],[[28,38,"pl-c1"]],[],[],[],[[12,18,"pl-k"]],[],[],[[8,14,"pl-k"],[15,19,"pl-k"],[20,30,"pl-en"],[31,36,"pl-k"]],[[12,38,"pl-c"],[12,14,"pl-c"]],[[70,75,"pl-c1"]],[[12,14,"pl-k"],[37,40,"pl-c1"]],[[16,22,"pl-k"],[23,28,"pl-c1"]],[],[[12,18,"pl-k"],[41,44,"pl-c1"]],[],[],[[8,39,"pl-c"],[8,10,"pl-c"],[37,39,"pl-c"]],[[8,13,"pl-k"]],[],[[8,34,"pl-c"],[8,10,"pl-c"],[32,34,"pl-c"]],[],[],[[8,48,"pl-c"],[8,10,"pl-c"],[46,48,"pl-c"]],[[8,13,"pl-k"]],[],[[8,45,"pl-c"],[8,10,"pl-c"],[43,45,"pl-c"]],[[8,13,"pl-k"]],[],[[8,20,"pl-c"],[8,10,"pl-c"],[18,20,"pl-c"]],[],[],[[8,84,"pl-c"],[8,10,"pl-c"],[82,84,"pl-c"]],[],[],[[8,34,"pl-c"],[8,10,"pl-c"],[32,34,"pl-c"]],[[8,15,"pl-k"]],[],[[8,33,"pl-c"],[8,10,"pl-c"],[31,33,"pl-c"]],[[8,12,"pl-k"]],[],[[8,72,"pl-c"],[8,10,"pl-c"],[70,72,"pl-c"]],[[8,12,"pl-k"]],[],[],[],[[0,9,"pl-k"],[10,19,"pl-en"]],[],[[1,6,"pl-k"]],[[4,8,"pl-k"],[9,19,"pl-en"],[20,25,"pl-k"],[44,49,"pl-k"]],[],[[8,14,"pl-k"],[20,24,"pl-c1"],[32,36,"pl-c1"],[46,53,"pl-c1"],[54,55,"pl-c1"],[59,63,"pl-c1"],[73,74,"pl-c1"]],[],[],[[16,42,"pl-en"],[43,48,"pl-k"]],[],[],[],[[37,38,"pl-c1"]],[[8,10,"pl-k"],[23,27,"pl-c1"],[33,35,"pl-c1"],[39,49,"pl-c1"],[62,74,"pl-s"],[62,63,"pl-pds"],[73,74,"pl-pds"]],[[12,17,"pl-k"],[18,26,"pl-k"],[27,31,"pl-k"],[57,59,"pl-c1"]],[[12,14,"pl-k"],[16,28,"pl-c1"]],[[16,18,"pl-k"],[31,35,"pl-c1"],[41,43,"pl-c1"]],[[34,41,"pl-c1"]],[[35,40,"pl-s"],[35,36,"pl-pds"],[37,39,"pl-cce"],[39,40,"pl-pds"],[44,68,"pl-c"],[44,46,"pl-c"]],[[26,28,"pl-c1"]],[[18,22,"pl-k"],[23,25,"pl-k"],[38,40,"pl-c1"],[45,48,"pl-s"],[45,46,"pl-pds"],[47,48,"pl-pds"]],[[34,41,"pl-c1"]],[[35,38,"pl-s"],[35,36,"pl-pds"],[37,38,"pl-pds"]],[[26,28,"pl-c1"]],[],[],[],[],[[8,11,"pl-k"],[32,36,"pl-c1"]],[[12,20,"pl-k"],[21,25,"pl-k"]],[[12,14,"pl-k"],[21,24,"pl-s"],[21,22,"pl-pds"],[23,24,"pl-pds"]],[[20,24,"pl-s"],[20,21,"pl-pds"],[21,23,"pl-cce"],[23,24,"pl-pds"]],[],[],[],[[8,14,"pl-k"]],[],[[1,6,"pl-k"]],[],[],[[1,6,"pl-k"]],[],[[1,3,"pl-k"]],[[0,5,"pl-k"]],[[0,8,"pl-k"],[9,14,"pl-k"],[15,16,"pl-en"]],[[0,5,"pl-k"]],[[1,5,"pl-k"]],[[0,5,"pl-k"],[6,13,"pl-en"]],[[0,7,"pl-k"]],[[4,11,"pl-en"]],[[8,33,"pl-c1"]],[],[],[[4,12,"pl-en"]],[[8,29,"pl-c1"]],[],[],[[4,20,"pl-c1"],[22,26,"pl-en"]],[[8,14,"pl-k"]],[],[[0,8,"pl-k"]],[[4,20,"pl-c1"]],[],[],[[0,8,"pl-k"],[9,17,"pl-k"]],[[0,5,"pl-k"],[6,12,"pl-en"]],[[0,7,"pl-k"]],[[4,12,"pl-k"],[13,19,"pl-en"]],[],[[8,28,"pl-c1"],[37,41,"pl-c1"]],[],[],[[4,11,"pl-en"]],[[8,28,"pl-c1"],[37,41,"pl-c1"]],[],[],[[0,8,"pl-k"]],[[12,20,"pl-k"],[22,27,"pl-k"]],[[4,10,"pl-en"],[11,16,"pl-k"]],[],[],[],[[1,6,"pl-k"]],[],[[0,5,"pl-k"],[6,21,"pl-en"]],[[0,7,"pl-k"]],[[4,19,"pl-en"]],[],[[4,8,"pl-k"],[9,22,"pl-en"],[23,28,"pl-k"]],[[24,28,"pl-c1"]],[],[[8,13,"pl-k"],[74,78,"pl-c1"]],[[8,10,"pl-k"],[28,31,"pl-c1"]],[[29,35,"pl-smi"]],[[12,18,"pl-k"],[19,23,"pl-c1"]],[],[[8,14,"pl-k"],[15,20,"pl-c1"]],[],[],[[4,8,"pl-k"],[9,19,"pl-en"],[20,25,"pl-k"],[45,50,"pl-k"]],[[24,28,"pl-c1"]],[],[],[],[[0,8,"pl-k"]],[],[],[],[],[[0,6,"pl-k"]],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,24,"pl-en"],[25,30,"pl-k"]],[],[[4,50,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"],[17,22,"pl-c1"]],[[4,7,"pl-k"],[38,39,"pl-c1"],[50,54,"pl-c1"]],[[8,13,"pl-k"],[14,22,"pl-k"],[23,27,"pl-k"],[36,40,"pl-c1"]],[[8,10,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"],[29,33,"pl-s"],[29,30,"pl-pds"],[30,32,"pl-cce"],[32,33,"pl-pds"]],[[12,17,"pl-k"]],[[8,10,"pl-k"],[12,24,"pl-c1"]],[[20,24,"pl-c1"]],[[12,17,"pl-k"]],[],[],[],[[4,119,"pl-c"],[4,6,"pl-c"]],[[4,6,"pl-k"]],[[8,14,"pl-k"],[15,20,"pl-c1"]],[],[[4,51,"pl-c"],[4,6,"pl-c"]],[[4,6,"pl-k"],[25,38,"pl-c1"]],[],[[8,24,"pl-c1"]],[],[[1,6,"pl-k"]],[[8,13,"pl-k"],[26,36,"pl-smi"],[39,76,"pl-c1"]],[[8,13,"pl-k"],[14,20,"pl-c1"],[29,45,"pl-c1"],[46,56,"pl-smi"],[57,62,"pl-c1"],[121,125,"pl-c1"],[127,128,"pl-c1"]],[[1,5,"pl-k"]],[[8,14,"pl-c1"],[23,39,"pl-c1"],[42,47,"pl-c1"],[106,110,"pl-c1"],[112,113,"pl-c1"]],[[1,6,"pl-k"]],[],[[8,10,"pl-k"],[12,32,"pl-c1"]],[[12,18,"pl-k"],[19,24,"pl-c1"]],[[30,39,"pl-smi"]],[[24,34,"pl-c1"]],[[8,17,"pl-c1"]],[],[[4,10,"pl-k"],[11,15,"pl-c1"]],[],[],[[0,6,"pl-k"]],[],[[0,52,"pl-c"],[0,2,"pl-c"],[50,52,"pl-c"]],[[0,6,"pl-k"],[19,31,"pl-en"],[32,37,"pl-k"]],[],[],[[8,15,"pl-c1"],[18,22,"pl-c1"],[27,57,"pl-c"],[27,29,"pl-c"]],[[4,6,"pl-k"],[24,37,"pl-c1"]],[[8,14,"pl-k"]],[],[[4,22,"pl-c"],[4,6,"pl-c"]],[],[],[[4,7,"pl-k"],[38,39,"pl-c1"],[49,53,"pl-c1"]],[[8,13,"pl-k"],[14,22,"pl-k"],[23,27,"pl-k"]],[],[[8,48,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"],[29,33,"pl-s"],[29,30,"pl-pds"],[30,32,"pl-cce"],[32,33,"pl-pds"]],[[12,53,"pl-c"],[12,14,"pl-c"]],[[12,14,"pl-k"],[24,29,"pl-c1"]],[],[[16,24,"pl-k"]],[],[],[[12,17,"pl-k"],[18,22,"pl-k"]],[[24,25,"pl-c1"],[37,41,"pl-c1"],[47,48,"pl-c1"],[52,64,"pl-c1"],[73,74,"pl-c1"],[88,89,"pl-c1"],[94,97,"pl-s"],[94,95,"pl-pds"],[96,97,"pl-pds"]],[],[[12,49,"pl-c"],[12,14,"pl-c"]],[],[[12,14,"pl-k"],[41,53,"pl-c1"],[56,62,"pl-c1"],[63,64,"pl-c1"]],[],[[12,16,"pl-k"]],[],[],[[20,25,"pl-c1"]],[],[[12,31,"pl-c"],[12,14,"pl-c"]],[],[[10,14,"pl-k"]],[],[],[],[],[[4,6,"pl-k"],[17,22,"pl-c1"]],[],[[8,10,"pl-k"],[12,24,"pl-c1"]],[],[[8,12,"pl-k"]],[],[],[],[[20,30,"pl-c1"]],[[4,10,"pl-k"]],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,26,"pl-en"],[27,32,"pl-k"]],[],[[4,6,"pl-k"],[13,19,"pl-c1"],[25,26,"pl-c1"],[35,36,"pl-c1"],[40,41,"pl-c1"],[45,57,"pl-c1"],[63,64,"pl-c1"],[75,76,"pl-c1"],[81,84,"pl-s"],[81,82,"pl-pds"],[83,84,"pl-pds"],[94,95,"pl-c1"],[100,104,"pl-s"],[100,101,"pl-pds"],[101,103,"pl-cce"],[103,104,"pl-pds"],[113,114,"pl-c1"],[119,122,"pl-s"],[119,120,"pl-pds"],[121,122,"pl-pds"]],[[8,14,"pl-k"],[15,19,"pl-c1"]],[[4,10,"pl-k"],[16,22,"pl-c1"],[27,29,"pl-c1"],[39,40,"pl-c1"],[45,48,"pl-s"],[45,46,"pl-pds"],[47,48,"pl-pds"],[57,58,"pl-c1"],[63,67,"pl-s"],[63,64,"pl-pds"],[64,66,"pl-cce"],[66,67,"pl-pds"]],[],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,20,"pl-en"],[21,22,"pl-v"]],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,26,"pl-en"],[27,32,"pl-k"]],[],[[4,10,"pl-k"],[16,22,"pl-c1"],[27,29,"pl-c1"],[38,39,"pl-c1"],[44,47,"pl-s"],[44,45,"pl-pds"],[46,47,"pl-pds"]],[],[[1,6,"pl-k"]],[],[[0,9,"pl-k"],[10,19,"pl-en"]],[[4,7,"pl-c"],[4,6,"pl-c"]],[[0,48,"pl-c"]],[[0,7,"pl-c"],[5,7,"pl-c"]],[[16,28,"pl-en"]],[],[[8,10,"pl-k"],[17,22,"pl-c1"]],[[12,18,"pl-k"]],[],[],[],[[8,39,"pl-c"],[8,10,"pl-c"]],[[8,20,"pl-c1"],[26,31,"pl-c1"],[40,43,"pl-c1"],[47,51,"pl-s"],[47,48,"pl-pds"],[48,50,"pl-cce"],[50,51,"pl-pds"],[53,56,"pl-s"],[53,54,"pl-pds"],[55,56,"pl-pds"]],[],[[8,13,"pl-k"],[14,18,"pl-k"],[19,22,"pl-smi"],[28,35,"pl-c1"],[36,37,"pl-c1"],[38,39,"pl-c1"],[40,44,"pl-s"],[40,41,"pl-pds"],[43,44,"pl-pds"],[49,50,"pl-c1"]],[],[[8,32,"pl-c"],[8,10,"pl-c"]],[[14,15,"pl-c1"]],[[8,13,"pl-k"],[27,31,"pl-c1"],[32,36,"pl-s"],[32,33,"pl-pds"],[35,36,"pl-pds"]],[[17,22,"pl-c1"],[27,28,"pl-c1"]],[],[],[[8,22,"pl-c"],[8,10,"pl-c"]],[[14,15,"pl-c1"]],[[8,13,"pl-k"],[27,31,"pl-c1"],[32,36,"pl-s"],[32,33,"pl-pds"],[35,36,"pl-pds"]],[[12,14,"pl-k"],[23,24,"pl-c1"],[39,41,"pl-c1"],[46,49,"pl-s"],[46,47,"pl-pds"],[48,49,"pl-pds"]],[[21,26,"pl-c1"],[31,32,"pl-c1"]],[[12,16,"pl-k"]],[[23,24,"pl-c1"]],[],[],[[8,53,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[12,20,"pl-c1"],[26,30,"pl-s"],[26,27,"pl-pds"],[29,30,"pl-pds"]],[[17,22,"pl-c1"],[28,32,"pl-c1"],[35,36,"pl-c1"]],[],[[8,24,"pl-c"],[8,10,"pl-c"]],[[14,15,"pl-c1"],[17,64,"pl-c"],[17,19,"pl-c"]],[[8,13,"pl-k"],[27,31,"pl-c1"],[32,37,"pl-s"],[32,33,"pl-pds"],[36,37,"pl-pds"]],[[12,58,"pl-c"],[12,14,"pl-c"]],[[12,14,"pl-k"],[22,23,"pl-c1"],[31,35,"pl-c1"],[52,53,"pl-c1"],[58,61,"pl-s"],[58,59,"pl-pds"],[60,61,"pl-pds"]],[],[[16,24,"pl-k"]],[],[[12,35,"pl-c"],[12,14,"pl-c"]],[[47,52,"pl-c1"],[53,56,"pl-s"],[53,54,"pl-pds"],[55,56,"pl-pds"],[64,66,"pl-c1"]],[[12,14,"pl-k"]],[[23,24,"pl-c1"]],[[14,18,"pl-k"]],[[24,26,"pl-c1"]],[],[[12,17,"pl-k"],[53,59,"pl-c1"]],[[12,14,"pl-k"],[35,39,"pl-s"],[35,36,"pl-pds"],[38,39,"pl-pds"]],[[16,33,"pl-c"],[16,18,"pl-c"]],[],[[14,18,"pl-k"]],[[16,51,"pl-c"],[16,18,"pl-c"]],[[21,26,"pl-c1"],[46,47,"pl-c1"]],[[16,18,"pl-k"],[25,30,"pl-c1"]],[[27,30,"pl-s"],[27,28,"pl-pds"],[29,30,"pl-pds"]],[[16,29,"pl-c"],[16,18,"pl-c"]],[[31,32,"pl-c1"],[36,37,"pl-c1"],[48,49,"pl-c1"]],[],[],[],[[8,31,"pl-c"],[8,10,"pl-c"]],[[8,53,"pl-c"],[8,10,"pl-c"]],[[8,40,"pl-c"],[8,10,"pl-c"]],[],[[8,10,"pl-k"]],[[19,22,"pl-s"],[19,20,"pl-pds"],[21,22,"pl-pds"]],[],[[8,91,"pl-c"],[8,10,"pl-c"]],[[8,14,"pl-k"],[15,22,"pl-c1"],[28,33,"pl-c1"],[37,41,"pl-s"],[37,38,"pl-pds"],[40,41,"pl-pds"],[46,53,"pl-c1"],[56,68,"pl-c1"]],[],[],[],[[0,28,"pl-c"],[0,2,"pl-c"],[26,28,"pl-c"]],[[0,6,"pl-k"],[7,11,"pl-k"],[12,26,"pl-en"],[55,60,"pl-k"],[88,94,"pl-c1"]],[],[[4,7,"pl-k"],[38,43,"pl-c1"],[63,67,"pl-smi"]],[[8,10,"pl-k"],[17,20,"pl-c1"],[26,34,"pl-s"],[26,27,"pl-pds"],[33,34,"pl-pds"]],[[12,20,"pl-k"]],[[38,42,"pl-smi"]],[[8,10,"pl-k"]],[[12,17,"pl-k"],[18,36,"pl-smi"],[37,62,"pl-s"],[37,38,"pl-pds"],[61,62,"pl-pds"]],[],[[39,43,"pl-smi"]],[[8,10,"pl-k"]],[[12,17,"pl-k"],[18,36,"pl-smi"],[37,62,"pl-s"],[37,38,"pl-pds"],[61,62,"pl-pds"]],[],[[8,10,"pl-k"],[18,20,"pl-smi"],[24,27,"pl-s"],[24,25,"pl-pds"],[26,27,"pl-pds"]],[[25,29,"pl-smi"]],[[12,17,"pl-k"],[25,27,"pl-smi"],[31,34,"pl-s"],[31,32,"pl-pds"],[33,34,"pl-pds"]],[[29,33,"pl-smi"]],[[16,18,"pl-k"]],[[20,25,"pl-k"],[26,44,"pl-smi"],[45,72,"pl-s"],[45,46,"pl-pds"],[71,72,"pl-pds"]],[],[],[],[],[],[[8,11,"pl-k"],[91,95,"pl-smi"]],[[12,14,"pl-k"],[28,31,"pl-c1"],[37,47,"pl-s"],[37,38,"pl-pds"],[46,47,"pl-pds"],[62,65,"pl-c1"],[71,79,"pl-s"],[71,72,"pl-pds"],[78,79,"pl-pds"],[95,99,"pl-smi"],[101,105,"pl-smi"]],[[16,24,"pl-k"]],[[12,14,"pl-k"],[27,30,"pl-c1"],[36,39,"pl-s"],[36,37,"pl-pds"],[38,39,"pl-pds"],[48,52,"pl-c1"],[53,56,"pl-s"],[53,54,"pl-pds"],[55,56,"pl-pds"]],[[16,24,"pl-k"]],[[12,14,"pl-k"],[22,27,"pl-c1"]],[[24,27,"pl-s"],[24,25,"pl-pds"],[26,27,"pl-pds"]],[[31,34,"pl-c1"]],[],[],[[8,13,"pl-k"],[41,47,"pl-c1"],[81,85,"pl-c1"]],[[8,10,"pl-k"],[29,32,"pl-c1"]],[[17,23,"pl-c1"],[24,32,"pl-c1"],[37,43,"pl-smi"]],[[8,12,"pl-k"]],[[12,20,"pl-k"]],[],[[21,25,"pl-smi"]],[[8,13,"pl-k"],[20,24,"pl-smi"]],[[17,28,"pl-c1"],[34,38,"pl-smi"]],[],[],[],[[0,35,"pl-c"],[0,2,"pl-c"],[33,35,"pl-c"]],[[0,6,"pl-k"],[7,11,"pl-k"],[12,26,"pl-en"],[27,32,"pl-k"],[44,47,"pl-c1"]],[],[[4,9,"pl-k"],[32,58,"pl-c1"],[63,66,"pl-smi"]],[[4,10,"pl-k"],[20,25,"pl-c1"],[43,52,"pl-s"],[43,44,"pl-pds"],[51,52,"pl-pds"]],[],[],[[0,6,"pl-k"],[19,29,"pl-en"],[48,53,"pl-k"],[65,68,"pl-c1"],[75,80,"pl-k"],[106,111,"pl-k"],[133,137,"pl-k"]],[[0,6,"pl-k"],[7,11,"pl-k"],[12,30,"pl-en"],[59,64,"pl-k"],[76,79,"pl-c1"]],[],[[4,6,"pl-k"],[9,23,"pl-c1"]],[[8,14,"pl-k"]],[],[[4,7,"pl-k"],[38,43,"pl-c1"],[63,67,"pl-smi"]],[[8,10,"pl-k"],[17,20,"pl-c1"],[26,37,"pl-c1"]],[[12,20,"pl-k"]],[[38,42,"pl-smi"]],[[8,10,"pl-k"]],[[12,17,"pl-k"],[18,36,"pl-smi"],[37,69,"pl-s"],[37,38,"pl-pds"],[68,69,"pl-pds"]],[],[[39,43,"pl-smi"]],[[8,10,"pl-k"]],[[12,17,"pl-k"],[18,36,"pl-smi"],[37,69,"pl-s"],[37,38,"pl-pds"],[68,69,"pl-pds"]],[],[[8,10,"pl-k"],[18,20,"pl-smi"],[24,27,"pl-s"],[24,25,"pl-pds"],[26,27,"pl-pds"]],[[25,29,"pl-smi"]],[[12,17,"pl-k"],[25,27,"pl-smi"],[31,34,"pl-s"],[31,32,"pl-pds"],[33,34,"pl-pds"]],[[29,33,"pl-smi"]],[[16,18,"pl-k"]],[[20,25,"pl-k"],[26,44,"pl-smi"],[45,79,"pl-s"],[45,46,"pl-pds"],[78,79,"pl-pds"]],[],[],[],[],[[8,13,"pl-k"],[45,53,"pl-smi"],[54,58,"pl-c1"]],[[8,13,"pl-k"],[14,18,"pl-k"],[49,51,"pl-smi"],[55,58,"pl-s"],[55,56,"pl-pds"],[57,58,"pl-pds"]],[],[[8,10,"pl-k"]],[[43,47,"pl-smi"]],[[12,14,"pl-k"]],[[16,21,"pl-k"],[22,40,"pl-smi"],[41,88,"pl-s"],[41,42,"pl-pds"],[87,88,"pl-pds"]],[],[[12,17,"pl-k"],[25,27,"pl-smi"],[31,34,"pl-s"],[31,32,"pl-pds"],[33,34,"pl-pds"]],[[29,33,"pl-smi"]],[[16,18,"pl-k"]],[[20,25,"pl-k"],[26,44,"pl-smi"],[45,79,"pl-s"],[45,46,"pl-pds"],[78,79,"pl-pds"]],[],[],[],[[12,15,"pl-k"],[55,59,"pl-smi"],[109,113,"pl-smi"]],[[39,42,"pl-c1"]],[[12,83,"pl-c"],[12,14,"pl-c"]],[[21,33,"pl-c1"]],[],[[8,12,"pl-k"]],[[21,33,"pl-c1"],[40,43,"pl-c1"],[46,52,"pl-c1"],[53,55,"pl-c1"],[63,66,"pl-c1"],[69,73,"pl-c1"],[78,80,"pl-c1"]],[],[],[[8,13,"pl-k"],[36,46,"pl-c1"]],[[13,19,"pl-c1"],[28,33,"pl-c1"],[38,41,"pl-s"],[38,39,"pl-pds"],[40,41,"pl-pds"],[44,47,"pl-s"],[44,45,"pl-pds"],[46,47,"pl-pds"]],[],[[21,25,"pl-smi"]],[[8,13,"pl-k"],[20,24,"pl-smi"]],[[17,28,"pl-c1"],[34,38,"pl-smi"]],[],[],[],[[0,6,"pl-k"],[7,12,"pl-k"],[13,17,"pl-k"],[20,25,"pl-k"],[41,46,"pl-s"],[41,42,"pl-pds"],[45,46,"pl-pds"],[47,51,"pl-s"],[47,48,"pl-pds"],[50,51,"pl-pds"],[52,60,"pl-s"],[52,53,"pl-pds"],[59,60,"pl-pds"],[61,68,"pl-s"],[61,62,"pl-pds"],[67,68,"pl-pds"],[69,76,"pl-s"],[69,70,"pl-pds"],[75,76,"pl-pds"],[77,82,"pl-s"],[77,78,"pl-pds"],[81,82,"pl-pds"],[83,91,"pl-s"],[83,84,"pl-pds"],[90,91,"pl-pds"],[92,97,"pl-s"],[92,93,"pl-pds"],[96,97,"pl-pds"]],[[0,6,"pl-k"],[7,12,"pl-k"],[35,40,"pl-en"],[52,53,"pl-c1"],[67,68,"pl-c1"]],[[0,6,"pl-k"],[7,11,"pl-k"],[12,24,"pl-en"]],[],[[4,7,"pl-k"],[38,43,"pl-c1"],[63,67,"pl-smi"]],[[8,10,"pl-k"],[17,21,"pl-smi"]],[[12,14,"pl-k"],[22,26,"pl-c1"],[32,35,"pl-c1"],[48,51,"pl-c1"]],[[16,20,"pl-k"]],[[16,18,"pl-k"],[25,28,"pl-c1"],[34,39,"pl-s"],[34,35,"pl-pds"],[38,39,"pl-pds"],[48,51,"pl-c1"],[57,64,"pl-s"],[57,58,"pl-pds"],[63,64,"pl-pds"]],[[26,46,"pl-c1"],[56,59,"pl-c1"]],[[18,22,"pl-k"]],[[26,47,"pl-c1"],[57,60,"pl-c1"]],[],[[16,18,"pl-k"]],[[20,28,"pl-k"]],[],[[17,23,"pl-c1"],[24,27,"pl-s"],[24,25,"pl-pds"],[26,27,"pl-pds"]],[],[],[],[],[[0,2,"pl-c"],[0,2,"pl-c"]],[[0,77,"pl-c"]],[[0,57,"pl-c"]],[[0,63,"pl-c"]],[[0,23,"pl-c"]],[[0,60,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"],[1,3,"pl-c"]],[[0,6,"pl-k"],[7,15,"pl-k"],[16,20,"pl-k"],[21,25,"pl-k"],[26,44,"pl-en"]],[[4,9,"pl-k"]],[[9,15,"pl-c1"]],[[4,7,"pl-k"],[15,16,"pl-c1"]],[[9,18,"pl-c1"],[28,29,"pl-c1"]],[[9,15,"pl-c1"]],[],[],[[4,9,"pl-k"],[30,36,"pl-c1"]],[[4,9,"pl-k"],[10,14,"pl-k"],[17,22,"pl-k"],[35,40,"pl-c1"]],[[4,8,"pl-k"]],[[4,9,"pl-k"],[10,18,"pl-k"],[19,23,"pl-k"],[24,28,"pl-k"],[37,50,"pl-c1"]],[],[[4,6,"pl-k"]],[[8,13,"pl-k"],[14,32,"pl-smi"],[33,49,"pl-s"],[33,34,"pl-pds"],[48,49,"pl-pds"]],[[4,10,"pl-k"]],[],[],[[0,67,"pl-c"],[0,2,"pl-c"]],[[0,22,"pl-c"]],[[0,2,"pl-c"]],[[0,71,"pl-c"]],[[0,23,"pl-c"]],[[0,2,"pl-c"]],[[0,21,"pl-c"]],[[0,50,"pl-c"]],[[0,49,"pl-c"]],[[0,87,"pl-c"]],[[0,27,"pl-c"]],[[0,27,"pl-c"]],[[0,39,"pl-c"]],[[0,37,"pl-c"]],[[0,33,"pl-c"]],[[0,2,"pl-c"]],[[0,19,"pl-c"]],[[0,45,"pl-c"]],[[0,2,"pl-c"]],[[0,30,"pl-c"]],[[0,18,"pl-c"]],[[0,21,"pl-c"]],[[0,2,"pl-c"]],[[0,74,"pl-c"]],[[0,70,"pl-c"]],[[0,51,"pl-c"]],[[0,96,"pl-c"]],[[0,3,"pl-c"],[1,3,"pl-c"]],[[0,4,"pl-k"],[5,9,"pl-k"],[10,41,"pl-en"],[42,47,"pl-k"]],[],[[4,28,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"],[18,23,"pl-c1"]],[[4,8,"pl-k"],[16,21,"pl-c1"]],[[4,8,"pl-k"],[17,22,"pl-c1"]],[],[[9,15,"pl-c1"]],[],[[4,6,"pl-k"],[13,18,"pl-c1"],[28,29,"pl-c1"],[34,38,"pl-s"],[34,35,"pl-pds"],[35,37,"pl-cce"],[37,38,"pl-pds"]],[[17,21,"pl-c1"]],[[14,15,"pl-c1"]],[[6,10,"pl-k"],[11,13,"pl-k"],[19,23,"pl-c1"],[29,30,"pl-c1"],[38,39,"pl-c1"],[44,47,"pl-s"],[44,45,"pl-pds"],[46,47,"pl-pds"],[55,56,"pl-c1"],[61,65,"pl-s"],[61,62,"pl-pds"],[62,64,"pl-cce"],[64,65,"pl-pds"]],[[16,20,"pl-c1"]],[[14,15,"pl-c1"]],[[6,10,"pl-k"],[11,13,"pl-k"],[19,23,"pl-c1"],[29,30,"pl-c1"],[38,39,"pl-c1"],[44,47,"pl-s"],[44,45,"pl-pds"],[46,47,"pl-pds"],[55,56,"pl-c1"],[61,64,"pl-s"],[61,62,"pl-pds"],[63,64,"pl-pds"],[72,73,"pl-c1"],[78,82,"pl-s"],[78,79,"pl-pds"],[79,81,"pl-cce"],[81,82,"pl-pds"]],[[15,19,"pl-c1"]],[[14,15,"pl-c1"]],[[6,10,"pl-k"],[11,13,"pl-k"],[19,23,"pl-c1"],[29,30,"pl-c1"],[39,40,"pl-c1"],[45,48,"pl-s"],[45,46,"pl-pds"],[47,48,"pl-pds"],[56,57,"pl-c1"],[62,65,"pl-s"],[62,63,"pl-pds"],[64,65,"pl-pds"],[74,75,"pl-c1"],[80,84,"pl-s"],[80,81,"pl-pds"],[81,83,"pl-cce"],[83,84,"pl-pds"]],[[14,15,"pl-c1"]],[[6,10,"pl-k"]],[[8,13,"pl-k"],[14,32,"pl-smi"],[33,63,"pl-s"],[33,34,"pl-pds"],[62,63,"pl-pds"]],[],[[4,12,"pl-k"],[13,17,"pl-k"],[18,22,"pl-k"],[36,37,"pl-c1"]],[],[[9,15,"pl-c1"],[25,26,"pl-c1"]],[],[[4,9,"pl-k"],[17,18,"pl-c1"],[25,29,"pl-c1"]],[[8,10,"pl-k"],[24,28,"pl-s"],[24,25,"pl-pds"],[25,27,"pl-cce"],[27,28,"pl-pds"],[44,48,"pl-s"],[44,45,"pl-pds"],[45,47,"pl-cce"],[47,48,"pl-pds"]],[[12,17,"pl-k"],[18,36,"pl-smi"],[37,103,"pl-s"],[37,38,"pl-pds"],[102,103,"pl-pds"]],[],[[8,10,"pl-k"],[22,23,"pl-c1"]],[[12,17,"pl-k"],[18,36,"pl-smi"],[37,102,"pl-s"],[37,38,"pl-pds"],[101,102,"pl-pds"]],[],[[8,16,"pl-k"],[17,21,"pl-k"],[22,26,"pl-k"]],[],[[8,10,"pl-k"],[24,28,"pl-s"],[24,25,"pl-pds"],[25,27,"pl-cce"],[27,28,"pl-pds"]],[],[[12,17,"pl-k"],[18,22,"pl-k"]],[],[[12,14,"pl-k"],[27,31,"pl-c1"]],[[16,21,"pl-k"],[22,40,"pl-smi"],[41,78,"pl-s"],[41,42,"pl-pds"],[77,78,"pl-pds"]],[],[[12,18,"pl-k"]],[[12,37,"pl-c"],[12,14,"pl-c"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[12,40,"pl-c"],[12,14,"pl-c"]],[[12,16,"pl-k"],[17,21,"pl-s"],[17,18,"pl-pds"],[18,20,"pl-cce"],[20,21,"pl-pds"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[12,16,"pl-k"],[17,21,"pl-s"],[17,18,"pl-pds"],[18,20,"pl-cce"],[20,21,"pl-pds"]],[[24,35,"pl-k"],[36,44,"pl-k"],[45,49,"pl-k"]],[[16,21,"pl-k"]],[],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[24,35,"pl-k"],[36,44,"pl-k"],[45,49,"pl-k"],[51,55,"pl-s"],[51,52,"pl-pds"],[52,54,"pl-cce"],[54,55,"pl-pds"]],[[16,21,"pl-k"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[24,35,"pl-k"],[36,44,"pl-k"],[45,49,"pl-k"],[51,55,"pl-s"],[51,52,"pl-pds"],[52,54,"pl-cce"],[54,55,"pl-pds"]],[[16,21,"pl-k"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[24,35,"pl-k"],[36,44,"pl-k"],[45,49,"pl-k"],[51,55,"pl-s"],[51,52,"pl-pds"],[52,54,"pl-cce"],[54,55,"pl-pds"]],[[16,21,"pl-k"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[24,35,"pl-k"],[36,44,"pl-k"],[45,49,"pl-k"],[51,55,"pl-s"],[51,52,"pl-pds"],[52,54,"pl-cce"],[54,55,"pl-pds"]],[[16,21,"pl-k"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[24,35,"pl-k"],[36,44,"pl-k"],[45,49,"pl-k"],[51,55,"pl-s"],[51,52,"pl-pds"],[52,54,"pl-cce"],[54,55,"pl-pds"]],[[16,21,"pl-k"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[24,35,"pl-k"],[36,44,"pl-k"],[45,49,"pl-k"],[51,55,"pl-s"],[51,52,"pl-pds"],[52,54,"pl-cce"],[54,55,"pl-pds"]],[[16,21,"pl-k"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[24,35,"pl-k"],[36,44,"pl-k"],[45,49,"pl-k"],[51,55,"pl-s"],[51,52,"pl-pds"],[52,54,"pl-cce"],[54,55,"pl-pds"]],[[16,21,"pl-k"]],[],[[12,46,"pl-c"],[12,14,"pl-c"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[24,35,"pl-k"],[36,44,"pl-k"],[45,49,"pl-k"],[51,57,"pl-s"],[51,52,"pl-pds"],[52,56,"pl-cce"],[56,57,"pl-pds"]],[[16,21,"pl-k"]],[],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[16,66,"pl-c"],[16,18,"pl-c"]],[[24,42,"pl-c1"],[55,56,"pl-c1"],[58,59,"pl-c1"],[61,62,"pl-c1"]],[[16,21,"pl-k"]],[],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[16,75,"pl-c"],[16,18,"pl-c"]],[[24,42,"pl-c1"],[53,55,"pl-c1"]],[[16,21,"pl-k"]],[],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[16,71,"pl-c"],[16,18,"pl-c"]],[[16,21,"pl-k"],[27,33,"pl-c1"],[55,58,"pl-s"],[55,56,"pl-pds"],[57,58,"pl-pds"],[61,62,"pl-c1"],[65,66,"pl-c1"]],[[24,42,"pl-c1"],[53,55,"pl-c1"]],[],[[16,78,"pl-c"],[16,18,"pl-c"]],[[16,61,"pl-c"],[16,18,"pl-c"]],[[16,18,"pl-k"],[49,53,"pl-c1"],[76,82,"pl-c1"],[95,103,"pl-c1"]],[[20,25,"pl-k"],[26,44,"pl-smi"],[45,67,"pl-s"],[45,46,"pl-pds"],[66,67,"pl-pds"]],[],[[16,18,"pl-k"],[29,35,"pl-c1"],[48,54,"pl-c1"]],[[20,25,"pl-k"],[26,44,"pl-smi"],[45,109,"pl-s"],[45,46,"pl-pds"],[108,109,"pl-pds"]],[],[[16,21,"pl-k"]],[],[],[[12,19,"pl-k"]],[[16,21,"pl-k"],[22,40,"pl-smi"],[41,66,"pl-s"],[41,42,"pl-pds"],[65,66,"pl-pds"]],[],[[10,14,"pl-k"]],[[20,31,"pl-k"],[32,40,"pl-k"],[41,45,"pl-k"]],[],[[12,14,"pl-k"],[36,40,"pl-c1"]],[[16,63,"pl-c"],[16,18,"pl-c"]],[[16,70,"pl-c"],[16,18,"pl-c"]],[[16,67,"pl-c"],[16,18,"pl-c"]],[],[[16,19,"pl-k"]],[[16,18,"pl-k"],[29,33,"pl-c1"],[36,95,"pl-c"],[36,38,"pl-c"]],[[20,25,"pl-k"],[26,44,"pl-smi"],[45,100,"pl-s"],[45,46,"pl-pds"],[99,100,"pl-pds"]],[[16,18,"pl-k"],[29,33,"pl-c1"]],[[39,40,"pl-c1"]],[[16,20,"pl-k"],[21,23,"pl-k"],[34,38,"pl-c1"]],[[39,40,"pl-c1"]],[[16,20,"pl-k"],[21,23,"pl-k"],[34,38,"pl-c1"],[40,94,"pl-c"],[40,42,"pl-c"]],[[39,40,"pl-c1"]],[[16,20,"pl-k"]],[[20,25,"pl-k"],[26,44,"pl-smi"],[45,100,"pl-s"],[45,46,"pl-pds"],[99,100,"pl-pds"]],[],[[26,27,"pl-c1"],[32,33,"pl-c1"],[57,58,"pl-c1"]],[],[[16,21,"pl-k"]],[[20,22,"pl-k"],[30,31,"pl-c1"],[39,43,"pl-c1"]],[[24,29,"pl-k"],[30,48,"pl-smi"],[49,120,"pl-s"],[49,50,"pl-pds"],[119,120,"pl-pds"]],[],[[20,25,"pl-k"],[26,34,"pl-k"],[35,39,"pl-k"]],[],[[20,22,"pl-k"],[31,32,"pl-c1"],[37,38,"pl-c1"],[43,75,"pl-c"],[43,45,"pl-c"]],[[58,59,"pl-c1"],[67,71,"pl-c1"],[76,104,"pl-c"],[76,78,"pl-c"]],[[58,59,"pl-c1"],[67,71,"pl-c1"],[76,104,"pl-c"],[76,78,"pl-c"]],[[24,29,"pl-k"],[30,48,"pl-smi"],[49,104,"pl-s"],[49,50,"pl-pds"],[103,104,"pl-pds"]],[],[[38,39,"pl-c1"],[50,51,"pl-c1"],[55,56,"pl-c1"],[60,61,"pl-c1"]],[],[],[[16,18,"pl-k"],[29,35,"pl-c1"],[48,54,"pl-c1"]],[[20,25,"pl-k"],[26,44,"pl-smi"],[45,100,"pl-s"],[45,46,"pl-pds"],[99,100,"pl-pds"]],[],[[16,18,"pl-k"],[37,41,"pl-c1"],[64,70,"pl-c1"],[83,91,"pl-c1"]],[[20,25,"pl-k"],[26,44,"pl-smi"],[45,67,"pl-s"],[45,46,"pl-pds"],[66,67,"pl-pds"]],[],[],[],[[8,10,"pl-k"],[61,69,"pl-k"],[70,74,"pl-k"],[77,80,"pl-c1"],[106,108,"pl-c1"],[122,124,"pl-c1"]],[[12,17,"pl-k"],[18,36,"pl-smi"],[37,72,"pl-s"],[37,38,"pl-pds"],[71,72,"pl-pds"]],[],[[23,31,"pl-c1"]],[],[],[],[],[[4,6,"pl-k"],[14,15,"pl-c1"],[23,27,"pl-c1"],[45,49,"pl-s"],[45,46,"pl-pds"],[46,48,"pl-cce"],[48,49,"pl-pds"]],[[8,13,"pl-k"],[14,32,"pl-smi"],[33,77,"pl-s"],[33,34,"pl-pds"],[76,77,"pl-pds"]],[],[[4,6,"pl-k"]],[[8,13,"pl-k"],[14,32,"pl-smi"],[33,58,"pl-s"],[33,34,"pl-pds"],[57,58,"pl-pds"]],[],[[4,88,"pl-c"],[4,6,"pl-c"]],[[4,6,"pl-k"],[28,29,"pl-c1"]],[[8,14,"pl-k"],[15,26,"pl-k"],[27,31,"pl-k"]],[],[[4,74,"pl-c"],[4,6,"pl-c"]],[[4,6,"pl-k"]],[[8,14,"pl-k"],[15,26,"pl-k"],[27,30,"pl-k"]],[],[[4,76,"pl-c"],[4,6,"pl-c"]],[[4,82,"pl-c"],[4,6,"pl-c"]],[[4,10,"pl-k"]],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,27,"pl-en"]],[],[[4,7,"pl-k"],[38,43,"pl-c1"],[63,67,"pl-smi"]],[[8,10,"pl-k"],[17,20,"pl-c1"],[23,27,"pl-c1"],[33,35,"pl-c1"]],[[12,20,"pl-k"]],[[8,10,"pl-k"],[17,20,"pl-c1"],[23,30,"pl-c1"],[31,32,"pl-c1"],[33,34,"pl-c1"],[35,39,"pl-s"],[35,36,"pl-pds"],[38,39,"pl-pds"],[44,45,"pl-c1"]],[[17,23,"pl-c1"],[24,32,"pl-c1"],[33,44,"pl-c1"],[50,53,"pl-c1"]],[[8,12,"pl-k"],[13,15,"pl-k"],[23,29,"pl-smi"],[38,41,"pl-c1"],[44,48,"pl-c1"],[49,53,"pl-s"],[49,50,"pl-pds"],[50,52,"pl-cce"],[52,53,"pl-pds"]],[[17,23,"pl-c1"],[24,32,"pl-c1"],[33,64,"pl-c1"],[70,73,"pl-c1"]],[],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,28,"pl-en"]],[],[[4,7,"pl-k"],[38,43,"pl-c1"]],[[27,32,"pl-k"]],[[19,23,"pl-smi"]],[[8,10,"pl-k"],[15,22,"pl-smi"]],[[17,28,"pl-c1"]],[],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,16,"pl-k"],[17,25,"pl-en"],[54,59,"pl-k"],[71,74,"pl-c1"],[81,86,"pl-k"],[114,120,"pl-c1"]],[],[[4,20,"pl-c1"]],[[4,18,"pl-c1"]],[[4,22,"pl-c1"]],[[4,16,"pl-c1"]],[[4,19,"pl-c1"]],[[9,18,"pl-c1"]],[[4,39,"pl-c"],[4,6,"pl-c"]],[[4,10,"pl-k"],[16,22,"pl-c1"],[33,39,"pl-c1"],[50,55,"pl-c1"],[66,72,"pl-c1"],[76,82,"pl-smi"],[85,95,"pl-c1"],[101,107,"pl-c1"],[111,114,"pl-c1"],[120,123,"pl-c1"]],[],[],[[0,6,"pl-k"],[7,12,"pl-k"],[31,43,"pl-en"],[44,49,"pl-k"]],[],[[4,9,"pl-k"],[10,18,"pl-k"],[19,22,"pl-k"],[35,43,"pl-smi"],[44,48,"pl-smi"]],[[4,9,"pl-k"],[10,18,"pl-k"],[19,22,"pl-k"],[35,43,"pl-smi"],[44,53,"pl-smi"]],[[4,9,"pl-k"],[23,31,"pl-smi"],[32,36,"pl-smi"],[53,61,"pl-smi"],[62,71,"pl-smi"]],[[19,23,"pl-smi"]],[[4,10,"pl-k"]],[],[],[[1,6,"pl-k"]],[],[[0,5,"pl-k"],[6,27,"pl-en"]],[[0,7,"pl-k"]],[[4,25,"pl-en"]],[],[[4,8,"pl-k"],[9,17,"pl-en"],[18,23,"pl-k"]],[[24,28,"pl-c1"]],[[8,14,"pl-k"],[26,30,"pl-c1"],[50,53,"pl-c1"]],[],[],[[4,8,"pl-k"],[9,12,"pl-en"],[13,18,"pl-k"]],[[24,28,"pl-c1"]],[[18,24,"pl-c1"]],[],[],[[4,8,"pl-k"],[9,14,"pl-en"]],[[24,28,"pl-c1"]],[[18,23,"pl-c1"]],[],[],[[0,8,"pl-k"]],[],[],[],[],[[0,6,"pl-k"]],[],[[1,6,"pl-k"]],[],[[0,6,"pl-k"],[19,29,"pl-en"],[48,53,"pl-k"]],[],[[29,52,"pl-c1"]],[[1,6,"pl-k"]],[[4,6,"pl-k"],[30,38,"pl-c1"]],[[8,14,"pl-k"],[15,17,"pl-s"],[15,16,"pl-pds"],[16,17,"pl-pds"],[20,80,"pl-c"],[20,22,"pl-c"]],[[1,6,"pl-k"]],[[6,10,"pl-c1"],[22,27,"pl-c1"]],[[4,6,"pl-k"],[10,17,"pl-c1"]],[[8,14,"pl-k"]],[[1,6,"pl-k"]],[[26,29,"pl-c1"]],[[1,6,"pl-k"]],[[4,10,"pl-k"],[11,13,"pl-s"],[11,12,"pl-pds"],[12,13,"pl-pds"]],[],[],[[0,6,"pl-k"],[19,38,"pl-en"],[39,44,"pl-k"],[70,75,"pl-k"]],[],[[4,6,"pl-k"],[19,32,"pl-c1"],[33,38,"pl-s"],[33,34,"pl-pds"],[34,36,"pl-cce"],[37,38,"pl-pds"]],[[8,14,"pl-k"],[15,38,"pl-c1"],[50,56,"pl-c1"],[57,58,"pl-c1"],[71,83,"pl-c1"],[84,89,"pl-s"],[84,85,"pl-pds"],[85,87,"pl-cce"],[88,89,"pl-pds"],[93,95,"pl-c1"]],[[4,10,"pl-k"],[11,34,"pl-c1"]],[],[],[[0,6,"pl-k"],[19,37,"pl-en"],[56,61,"pl-k"],[87,92,"pl-k"]],[],[[4,10,"pl-k"],[11,21,"pl-c1"],[25,44,"pl-c1"]],[],[],[[0,6,"pl-k"],[19,41,"pl-en"],[42,47,"pl-k"],[74,79,"pl-k"]],[],[],[[4,6,"pl-k"],[14,19,"pl-c1"],[35,39,"pl-c1"],[42,44,"pl-c1"],[47,50,"pl-s"],[47,48,"pl-pds"],[49,50,"pl-pds"],[64,68,"pl-c1"],[71,73,"pl-c1"],[76,80,"pl-s"],[76,77,"pl-pds"],[77,79,"pl-cce"],[79,80,"pl-pds"]],[[16,19,"pl-s"],[16,17,"pl-pds"],[18,19,"pl-pds"]],[[4,10,"pl-k"]],[],[],[[0,6,"pl-k"],[19,40,"pl-en"],[59,64,"pl-k"],[76,79,"pl-c1"],[86,91,"pl-k"]],[],[[4,7,"pl-k"],[57,69,"pl-smi"],[70,75,"pl-c1"],[89,101,"pl-smi"],[102,105,"pl-c1"]],[[33,43,"pl-c1"],[47,69,"pl-c1"]],[[8,10,"pl-k"],[24,29,"pl-c1"]],[[12,18,"pl-k"]],[],[[4,10,"pl-k"],[11,13,"pl-s"],[11,12,"pl-pds"],[12,13,"pl-pds"]],[],[],[[0,6,"pl-k"],[19,29,"pl-en"],[48,53,"pl-k"],[65,68,"pl-c1"],[75,80,"pl-k"],[106,111,"pl-k"],[133,137,"pl-k"]],[],[[4,6,"pl-k"],[8,22,"pl-c1"]],[[8,14,"pl-k"],[15,25,"pl-c1"]],[],[],[],[[4,6,"pl-k"]],[[14,35,"pl-c1"]],[[8,14,"pl-k"]],[],[],[[10,28,"pl-c1"]],[[4,6,"pl-k"],[12,17,"pl-c1"]],[[8,14,"pl-k"],[15,36,"pl-c1"]],[[4,10,"pl-k"]],[],[],[[0,6,"pl-k"],[19,30,"pl-en"],[31,36,"pl-k"],[94,99,"pl-k"],[125,130,"pl-k"],[152,157,"pl-k"],[169,172,"pl-c1"],[179,183,"pl-k"]],[],[[4,6,"pl-k"],[17,22,"pl-c1"]],[[8,14,"pl-k"],[15,17,"pl-s"],[15,16,"pl-pds"],[16,17,"pl-pds"]],[],[[4,6,"pl-k"],[8,22,"pl-c1"]],[[8,14,"pl-k"],[25,29,"pl-c1"],[50,53,"pl-c1"],[59,82,"pl-c1"],[93,95,"pl-s"],[93,94,"pl-pds"],[94,95,"pl-pds"]],[],[],[[4,6,"pl-k"]],[[8,13,"pl-k"],[45,64,"pl-c1"]],[[8,10,"pl-k"],[21,25,"pl-c1"],[56,59,"pl-c1"]],[[12,18,"pl-k"]],[],[],[[4,7,"pl-k"],[57,69,"pl-smi"],[70,75,"pl-c1"],[89,101,"pl-smi"],[102,105,"pl-c1"]],[[24,47,"pl-c1"],[48,70,"pl-c1"]],[[8,10,"pl-k"],[21,25,"pl-c1"],[41,44,"pl-c1"]],[[12,18,"pl-k"]],[],[],[[4,6,"pl-k"],[33,37,"pl-c1"],[58,61,"pl-c1"]],[[8,14,"pl-k"]],[],[[4,10,"pl-k"],[11,13,"pl-s"],[11,12,"pl-pds"],[12,13,"pl-pds"]],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,19,"pl-en"],[20,25,"pl-k"],[83,88,"pl-k"],[114,119,"pl-k"],[141,146,"pl-k"],[158,161,"pl-c1"],[168,172,"pl-k"]],[],[[4,10,"pl-k"],[12,23,"pl-c1"],[73,78,"pl-c1"]],[],[],[[45,60,"pl-en"],[61,66,"pl-k"],[137,142,"pl-k"],[154,157,"pl-c1"]],[],[[1,6,"pl-k"]],[[4,6,"pl-k"],[12,29,"pl-smi"]],[[30,35,"pl-c1"]],[[1,6,"pl-k"]],[],[],[],[[14,19,"pl-k"]],[],[[4,21,"pl-c"],[4,6,"pl-c"]],[[4,7,"pl-k"],[57,65,"pl-smi"],[66,71,"pl-c1"],[85,93,"pl-smi"],[94,97,"pl-c1"]],[[8,13,"pl-k"],[38,50,"pl-c1"]],[],[[8,10,"pl-k"],[16,20,"pl-c1"],[38,41,"pl-c1"]],[[12,20,"pl-k"]],[],[[22,25,"pl-smi"],[35,40,"pl-c1"]],[[8,10,"pl-k"],[17,24,"pl-c1"]],[[12,14,"pl-k"]],[[34,37,"pl-smi"]],[[20,24,"pl-smi"],[46,72,"pl-c1"]],[[20,28,"pl-smi"],[31,39,"pl-c1"]],[[20,23,"pl-smi"],[26,55,"pl-s"],[26,27,"pl-pds"],[54,55,"pl-pds"],[69,101,"pl-s"],[69,70,"pl-pds"],[100,101,"pl-pds"]],[[28,37,"pl-c1"]],[],[[12,20,"pl-k"]],[],[[12,17,"pl-c1"]],[],[[31,34,"pl-k"],[35,44,"pl-c1"]],[[8,10,"pl-k"],[24,29,"pl-c1"]],[[12,18,"pl-k"]],[[12,20,"pl-k"]],[],[],[[8,10,"pl-k"],[16,30,"pl-smi"]],[[23,37,"pl-c1"]],[],[[17,26,"pl-c1"],[38,43,"pl-c1"]],[],[],[[4,7,"pl-k"],[9,14,"pl-k"],[41,47,"pl-c1"],[71,76,"pl-c1"],[106,110,"pl-smi"],[113,120,"pl-c1"]],[[8,10,"pl-k"],[22,29,"pl-c1"]],[[30,34,"pl-c1"]],[[21,29,"pl-c1"]],[],[],[[8,10,"pl-k"],[20,22,"pl-smi"],[26,29,"pl-s"],[26,27,"pl-pds"],[28,29,"pl-pds"],[33,41,"pl-c1"],[50,70,"pl-c1"]],[[12,20,"pl-k"]],[],[[25,41,"pl-c1"]],[[8,10,"pl-k"],[31,34,"pl-c1"],[40,47,"pl-c1"]],[[12,20,"pl-k"]],[],[[8,13,"pl-k"],[48,56,"pl-smi"],[57,61,"pl-c1"]],[],[[8,13,"pl-k"],[22,27,"pl-k"],[43,59,"pl-c1"]],[[8,10,"pl-k"],[13,21,"pl-c1"]],[[12,20,"pl-k"]],[],[[8,13,"pl-k"],[14,18,"pl-k"],[41,44,"pl-c1"],[47,48,"pl-c1"],[53,56,"pl-s"],[53,54,"pl-pds"],[55,56,"pl-pds"]],[[8,13,"pl-k"],[26,32,"pl-smi"],[33,45,"pl-c1"],[52,55,"pl-c1"],[58,64,"pl-c1"],[65,67,"pl-c1"],[75,78,"pl-c1"],[81,85,"pl-c1"],[90,92,"pl-c1"]],[[8,10,"pl-k"],[12,19,"pl-c1"]],[[12,20,"pl-k"]],[],[],[[8,13,"pl-k"],[36,46,"pl-c1"]],[[8,10,"pl-k"],[15,22,"pl-c1"]],[[12,20,"pl-k"]],[[10,15,"pl-c1"]],[],[[28,31,"pl-k"],[32,41,"pl-c1"]],[[8,10,"pl-k"],[16,30,"pl-smi"]],[[20,34,"pl-c1"]],[],[[8,10,"pl-k"],[20,25,"pl-c1"]],[[21,30,"pl-c1"],[39,44,"pl-c1"]],[],[],[[4,10,"pl-k"]],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,27,"pl-en"],[58,63,"pl-k"]],[],[[4,9,"pl-k"],[29,34,"pl-k"]],[[4,9,"pl-k"],[58,62,"pl-c1"],[68,71,"pl-c1"]],[[4,6,"pl-k"],[21,24,"pl-c1"]],[[29,34,"pl-smi"]],[[8,11,"pl-k"]],[[24,30,"pl-smi"],[31,37,"pl-c1"]],[[10,15,"pl-k"]],[[12,14,"pl-k"]],[[34,37,"pl-smi"]],[[20,24,"pl-smi"],[46,58,"pl-c1"]],[[20,28,"pl-smi"],[35,43,"pl-smi"]],[[20,23,"pl-smi"],[26,47,"pl-s"],[26,27,"pl-pds"],[44,46,"pl-cce"],[46,47,"pl-pds"],[55,58,"pl-c1"],[63,69,"pl-s"],[63,64,"pl-pds"],[64,66,"pl-cce"],[68,69,"pl-pds"],[76,80,"pl-smi"]],[[28,37,"pl-c1"]],[],[[12,18,"pl-k"],[19,24,"pl-c1"]],[],[[15,25,"pl-c1"]],[[6,10,"pl-k"]],[[8,10,"pl-k"],[18,25,"pl-smi"]],[[19,28,"pl-c1"],[29,32,"pl-k"],[33,49,"pl-c1"]],[[21,25,"pl-smi"]],[],[[4,10,"pl-k"],[11,15,"pl-c1"]],[],[],[[0,6,"pl-k"],[7,11,"pl-k"],[12,24,"pl-en"],[25,31,"pl-k"],[32,34,"pl-en"]],[],[[4,10,"pl-c1"]],[[4,8,"pl-c1"]],[[1,7,"pl-k"]],[[4,60,"pl-c"],[4,6,"pl-c"]],[[4,15,"pl-c1"]],[[1,5,"pl-k"]],[[4,15,"pl-c1"]],[[1,6,"pl-k"]],[],[],[[0,6,"pl-k"],[19,32,"pl-en"],[33,38,"pl-k"],[39,45,"pl-k"],[46,48,"pl-en"]],[],[[4,8,"pl-k"],[17,30,"pl-s"],[17,18,"pl-pds"],[29,30,"pl-pds"]],[[4,12,"pl-c1"],[18,24,"pl-k"],[31,41,"pl-s"],[31,32,"pl-pds"],[40,41,"pl-pds"]],[[4,10,"pl-k"],[11,22,"pl-c1"],[23,27,"pl-s"],[23,24,"pl-pds"],[24,26,"pl-cce"],[26,27,"pl-pds"],[29,35,"pl-c1"],[41,47,"pl-c1"],[48,52,"pl-s"],[48,49,"pl-pds"],[49,51,"pl-cce"],[51,52,"pl-pds"]],[],[],[[0,6,"pl-k"],[19,32,"pl-en"],[33,38,"pl-k"],[39,45,"pl-k"],[46,48,"pl-en"]],[],[[4,8,"pl-k"],[17,27,"pl-s"],[17,18,"pl-pds"],[26,27,"pl-pds"]],[[4,12,"pl-c1"],[18,24,"pl-k"],[31,35,"pl-s"],[31,32,"pl-pds"],[34,35,"pl-pds"]],[[4,10,"pl-k"],[11,22,"pl-c1"],[23,27,"pl-s"],[23,24,"pl-pds"],[24,26,"pl-cce"],[26,27,"pl-pds"],[29,35,"pl-c1"],[41,47,"pl-c1"],[48,52,"pl-s"],[48,49,"pl-pds"],[49,51,"pl-cce"],[51,52,"pl-pds"]],[],[],[[0,4,"pl-k"],[5,26,"pl-en"],[57,62,"pl-k"],[186,191,"pl-k"],[203,206,"pl-c1"]],[],[[1,6,"pl-k"]],[[4,6,"pl-k"],[12,29,"pl-smi"]],[[30,35,"pl-c1"]],[[1,6,"pl-k"]],[],[[31,37,"pl-c1"],[39,49,"pl-c1"],[60,70,"pl-smi"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,43,"pl-s"],[37,38,"pl-pds"],[42,43,"pl-pds"],[45,51,"pl-k"],[52,56,"pl-k"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,44,"pl-s"],[37,38,"pl-pds"],[43,44,"pl-pds"],[46,52,"pl-k"],[53,58,"pl-k"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,48,"pl-s"],[37,38,"pl-pds"],[47,48,"pl-pds"],[61,68,"pl-s"],[61,62,"pl-pds"],[67,68,"pl-pds"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,42,"pl-s"],[37,38,"pl-pds"],[41,42,"pl-pds"],[44,50,"pl-k"],[51,54,"pl-k"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,43,"pl-s"],[37,38,"pl-pds"],[42,43,"pl-pds"],[45,51,"pl-k"],[52,56,"pl-k"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,47,"pl-s"],[37,38,"pl-pds"],[46,47,"pl-pds"],[60,66,"pl-s"],[60,61,"pl-pds"],[65,66,"pl-pds"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,48,"pl-s"],[37,38,"pl-pds"],[47,48,"pl-pds"],[50,56,"pl-k"],[57,61,"pl-k"],[62,66,"pl-k"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,44,"pl-s"],[37,38,"pl-pds"],[43,44,"pl-pds"],[46,52,"pl-k"],[53,58,"pl-k"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,45,"pl-s"],[37,38,"pl-pds"],[44,45,"pl-pds"],[47,53,"pl-k"],[54,60,"pl-k"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,50,"pl-s"],[37,38,"pl-pds"],[49,50,"pl-pds"],[52,58,"pl-k"],[59,63,"pl-k"],[64,70,"pl-k"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,45,"pl-s"],[37,38,"pl-pds"],[44,45,"pl-pds"],[47,53,"pl-k"],[54,58,"pl-k"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,46,"pl-s"],[37,38,"pl-pds"],[45,46,"pl-pds"],[48,54,"pl-k"],[55,60,"pl-k"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,50,"pl-s"],[37,38,"pl-pds"],[49,50,"pl-pds"],[63,72,"pl-s"],[63,64,"pl-pds"],[71,72,"pl-pds"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,44,"pl-s"],[37,38,"pl-pds"],[43,44,"pl-pds"],[46,52,"pl-k"],[53,56,"pl-k"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,45,"pl-s"],[37,38,"pl-pds"],[44,45,"pl-pds"],[47,53,"pl-k"],[54,58,"pl-k"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,49,"pl-s"],[37,38,"pl-pds"],[48,49,"pl-pds"],[62,70,"pl-s"],[62,63,"pl-pds"],[69,70,"pl-pds"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,50,"pl-s"],[37,38,"pl-pds"],[49,50,"pl-pds"],[52,58,"pl-k"],[59,63,"pl-k"],[64,68,"pl-k"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,46,"pl-s"],[37,38,"pl-pds"],[45,46,"pl-pds"],[48,54,"pl-k"],[55,60,"pl-k"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,47,"pl-s"],[37,38,"pl-pds"],[46,47,"pl-pds"],[49,55,"pl-k"],[56,62,"pl-k"]],[[15,21,"pl-c1"],[22,36,"pl-c1"],[37,52,"pl-s"],[37,38,"pl-pds"],[51,52,"pl-pds"],[54,60,"pl-k"],[61,65,"pl-k"],[66,72,"pl-k"]],[],[[4,136,"pl-c"],[4,6,"pl-c"]],[],[],[[4,9,"pl-k"],[10,14,"pl-k"],[28,42,"pl-c1"]],[],[[4,7,"pl-k"],[57,64,"pl-smi"],[65,70,"pl-c1"],[84,91,"pl-smi"],[92,95,"pl-c1"]],[[8,13,"pl-k"]],[[8,13,"pl-k"],[51,55,"pl-c1"],[56,59,"pl-s"],[56,57,"pl-pds"],[58,59,"pl-pds"]],[[8,13,"pl-k"],[52,56,"pl-c1"],[57,60,"pl-s"],[57,58,"pl-pds"],[59,60,"pl-pds"]],[[8,13,"pl-k"],[47,53,"pl-c1"],[54,55,"pl-c1"],[57,65,"pl-c1"]],[[8,10,"pl-k"],[16,25,"pl-smi"],[26,30,"pl-c1"],[49,58,"pl-smi"],[59,62,"pl-c1"]],[[12,20,"pl-k"]],[[8,13,"pl-k"],[26,29,"pl-smi"],[39,45,"pl-c1"],[46,47,"pl-c1"]],[[8,13,"pl-k"],[26,29,"pl-smi"],[54,65,"pl-c1"],[66,69,"pl-s"],[66,67,"pl-pds"],[68,69,"pl-pds"],[82,88,"pl-c1"],[92,93,"pl-c1"]],[[8,13,"pl-k"],[20,25,"pl-smi"]],[[15,21,"pl-c1"],[57,61,"pl-c1"]],[],[],[[11,17,"pl-c1"],[18,32,"pl-c1"],[33,43,"pl-s"],[33,34,"pl-pds"],[42,43,"pl-pds"],[45,50,"pl-c1"],[51,61,"pl-s"],[51,52,"pl-pds"],[60,61,"pl-pds"],[63,73,"pl-s"],[63,64,"pl-pds"],[72,73,"pl-pds"]],[[11,17,"pl-c1"],[18,32,"pl-c1"],[33,43,"pl-s"],[33,34,"pl-pds"],[42,43,"pl-pds"],[45,50,"pl-c1"],[51,61,"pl-s"],[51,52,"pl-pds"],[60,61,"pl-pds"],[63,73,"pl-s"],[63,64,"pl-pds"],[72,73,"pl-pds"]],[[11,17,"pl-c1"],[18,32,"pl-c1"],[33,46,"pl-s"],[33,34,"pl-pds"],[45,46,"pl-pds"],[48,53,"pl-c1"],[54,67,"pl-s"],[54,55,"pl-pds"],[66,67,"pl-pds"],[69,82,"pl-s"],[69,70,"pl-pds"],[81,82,"pl-pds"]],[[4,10,"pl-k"],[11,13,"pl-en"]],[[4,16,"pl-c1"]],[[11,17,"pl-c1"],[18,32,"pl-c1"],[33,43,"pl-s"],[33,34,"pl-pds"],[42,43,"pl-pds"],[45,50,"pl-c1"],[51,61,"pl-s"],[51,52,"pl-pds"],[60,61,"pl-pds"],[63,76,"pl-c1"]],[[11,17,"pl-c1"],[18,32,"pl-c1"],[33,43,"pl-s"],[33,34,"pl-pds"],[42,43,"pl-pds"],[45,50,"pl-c1"],[51,61,"pl-s"],[51,52,"pl-pds"],[60,61,"pl-pds"],[63,76,"pl-c1"]],[],[[4,6,"pl-k"],[13,16,"pl-smi"],[17,22,"pl-c1"]],[[8,13,"pl-k"],[14,20,"pl-c1"],[29,47,"pl-c1"],[52,55,"pl-smi"]],[[8,10,"pl-k"]],[[12,17,"pl-k"],[40,64,"pl-c1"]],[[12,14,"pl-k"],[25,30,"pl-c1"]],[[23,29,"pl-c1"],[30,44,"pl-c1"],[45,63,"pl-s"],[45,46,"pl-pds"],[62,63,"pl-pds"],[65,70,"pl-c1"],[71,89,"pl-s"],[71,72,"pl-pds"],[88,89,"pl-pds"]],[[10,14,"pl-k"]],[[12,17,"pl-k"],[18,26,"pl-c1"],[37,57,"pl-c1"],[62,65,"pl-smi"]],[[12,14,"pl-k"]],[[16,18,"pl-k"]],[[38,41,"pl-smi"]],[[24,28,"pl-smi"],[39,48,"pl-c1"]],[[24,27,"pl-smi"],[30,61,"pl-s"],[30,31,"pl-pds"],[60,61,"pl-pds"],[68,71,"pl-smi"],[74,77,"pl-s"],[74,75,"pl-pds"],[76,77,"pl-pds"]],[[32,41,"pl-c1"]],[],[[23,28,"pl-c1"]],[[16,22,"pl-k"]],[],[[12,17,"pl-k"],[40,66,"pl-c1"]],[[12,14,"pl-k"],[25,30,"pl-c1"]],[[23,29,"pl-c1"],[30,44,"pl-c1"],[45,58,"pl-s"],[45,46,"pl-pds"],[57,58,"pl-pds"],[60,65,"pl-c1"],[66,79,"pl-s"],[66,67,"pl-pds"],[78,79,"pl-pds"]],[],[],[],[[4,55,"pl-c"],[4,6,"pl-c"]],[[4,103,"pl-c"],[4,6,"pl-c"]],[[4,52,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"]],[[15,18,"pl-k"]],[[13,17,"pl-c1"]],[],[[15,20,"pl-k"]],[],[],[],[[22,26,"pl-c1"],[37,43,"pl-c1"]],[[4,7,"pl-k"],[57,65,"pl-smi"],[66,71,"pl-c1"],[85,93,"pl-smi"],[94,97,"pl-c1"]],[[8,13,"pl-k"],[77,81,"pl-c1"]],[[8,10,"pl-k"],[26,29,"pl-c1"]],[[30,34,"pl-c1"],[38,44,"pl-smi"],[46,52,"pl-c1"]],[],[],[],[],[[4,7,"pl-k"],[9,14,"pl-k"],[31,38,"pl-c1"],[69,74,"pl-c1"]],[[8,10,"pl-k"],[22,29,"pl-c1"]],[[39,42,"pl-c1"]],[[30,33,"pl-c1"]],[[12,20,"pl-k"]],[],[],[[8,10,"pl-k"],[20,22,"pl-smi"],[26,29,"pl-s"],[26,27,"pl-pds"],[28,29,"pl-pds"],[34,42,"pl-c1"],[51,71,"pl-c1"]],[[12,14,"pl-k"],[17,25,"pl-c1"],[42,46,"pl-smi"]],[[33,37,"pl-smi"]],[[16,24,"pl-k"]],[],[[29,33,"pl-smi"]],[[12,14,"pl-k"],[25,29,"pl-smi"]],[[25,37,"pl-c1"]],[[16,24,"pl-k"]],[],[],[[12,14,"pl-k"],[25,29,"pl-c1"],[35,37,"pl-c1"],[50,53,"pl-c1"],[59,63,"pl-c1"],[75,78,"pl-c1"],[84,88,"pl-c1"],[100,103,"pl-c1"],[109,114,"pl-c1"]],[[16,18,"pl-k"]],[[38,41,"pl-smi"]],[[24,28,"pl-smi"],[39,51,"pl-c1"]],[[24,32,"pl-smi"],[43,51,"pl-smi"]],[[24,27,"pl-smi"],[30,33,"pl-s"],[30,31,"pl-pds"],[32,33,"pl-pds"],[44,47,"pl-c1"],[52,66,"pl-s"],[52,53,"pl-pds"],[65,66,"pl-pds"]],[[32,41,"pl-c1"]],[],[[23,28,"pl-c1"]],[[16,22,"pl-k"]],[],[],[[12,14,"pl-k"],[25,28,"pl-c1"],[51,54,"pl-c1"],[60,65,"pl-c1"],[77,80,"pl-c1"],[86,93,"pl-c1"]],[[16,18,"pl-k"]],[[38,41,"pl-smi"],[50,58,"pl-smi"],[59,64,"pl-smi"]],[[24,28,"pl-smi"],[39,42,"pl-c1"],[48,53,"pl-c1"],[64,69,"pl-c1"],[80,87,"pl-c1"]],[[24,32,"pl-smi"],[43,51,"pl-smi"]],[[20,23,"pl-k"],[25,30,"pl-k"],[52,56,"pl-smi"],[65,73,"pl-c1"],[98,102,"pl-smi"]],[[24,26,"pl-k"],[33,36,"pl-smi"],[37,42,"pl-c1"],[48,58,"pl-c1"],[64,67,"pl-c1"],[70,71,"pl-c1"]],[[32,35,"pl-smi"],[39,42,"pl-s"],[39,40,"pl-pds"],[41,42,"pl-pds"]],[[28,31,"pl-smi"],[40,43,"pl-c1"]],[],[[24,27,"pl-smi"],[30,33,"pl-s"],[30,31,"pl-pds"],[32,33,"pl-pds"],[44,47,"pl-c1"],[52,55,"pl-s"],[52,53,"pl-pds"],[54,55,"pl-pds"],[62,65,"pl-smi"]],[[32,41,"pl-c1"]],[],[[16,18,"pl-k"],[28,31,"pl-c1"],[37,42,"pl-c1"]],[[27,32,"pl-c1"]],[[20,26,"pl-k"]],[],[],[],[[12,14,"pl-k"],[24,27,"pl-c1"],[33,39,"pl-c1"]],[[16,18,"pl-k"],[29,32,"pl-c1"]],[[20,28,"pl-k"]],[[16,19,"pl-k"]],[[20,25,"pl-k"],[41,46,"pl-c1"],[55,63,"pl-smi"]],[[20,22,"pl-k"],[28,37,"pl-smi"],[38,42,"pl-c1"],[49,53,"pl-c1"],[64,73,"pl-smi"],[74,77,"pl-c1"]],[[24,29,"pl-k"],[61,65,"pl-c1"],[72,76,"pl-c1"]],[[24,26,"pl-k"],[41,44,"pl-c1"]],[[35,41,"pl-c1"],[78,82,"pl-c1"]],[[24,28,"pl-k"]],[[32,38,"pl-smi"]],[],[[18,23,"pl-k"],[25,30,"pl-k"]],[[20,22,"pl-k"]],[[42,45,"pl-smi"]],[[28,32,"pl-smi"],[43,55,"pl-c1"]],[[28,36,"pl-smi"],[47,55,"pl-smi"]],[[28,31,"pl-smi"],[34,59,"pl-s"],[34,35,"pl-pds"],[58,59,"pl-pds"]],[[36,45,"pl-c1"]],[],[[27,32,"pl-c1"]],[[20,26,"pl-k"]],[],[[14,18,"pl-k"],[19,21,"pl-k"],[32,35,"pl-c1"],[57,60,"pl-c1"],[66,73,"pl-c1"]],[[26,30,"pl-smi"]],[[16,19,"pl-k"],[21,26,"pl-k"],[51,55,"pl-smi"],[57,65,"pl-c1"],[99,103,"pl-smi"]],[[20,22,"pl-k"],[33,40,"pl-smi"]],[[29,38,"pl-c1"],[39,42,"pl-k"],[43,48,"pl-c1"]],[],[[26,30,"pl-smi"]],[[16,18,"pl-k"],[26,31,"pl-c1"],[42,48,"pl-c1"],[52,56,"pl-smi"]],[[20,25,"pl-k"],[47,53,"pl-c1"]],[[20,22,"pl-k"],[25,40,"pl-c1"]],[[31,36,"pl-c1"]],[[24,30,"pl-k"]],[],[[18,22,"pl-k"]],[[25,35,"pl-c1"]],[],[],[[16,18,"pl-k"],[26,31,"pl-c1"],[43,48,"pl-c1"],[59,65,"pl-c1"],[69,71,"pl-smi"],[75,78,"pl-s"],[75,76,"pl-pds"],[77,78,"pl-pds"],[87,92,"pl-c1"],[96,98,"pl-smi"],[102,105,"pl-s"],[102,103,"pl-pds"],[104,105,"pl-pds"]],[],[[20,73,"pl-c"],[20,22,"pl-c"]],[[20,132,"pl-c"],[20,22,"pl-c"]],[[20,23,"pl-k"],[25,30,"pl-k"],[49,55,"pl-c1"],[75,79,"pl-smi"]],[[36,39,"pl-c1"]],[],[[25,30,"pl-c1"]],[[25,34,"pl-c1"],[35,38,"pl-k"],[39,44,"pl-c1"],[55,61,"pl-c1"],[65,73,"pl-smi"]],[[25,30,"pl-c1"],[34,36,"pl-smi"],[39,42,"pl-s"],[39,40,"pl-pds"],[41,42,"pl-pds"]],[],[],[[16,18,"pl-k"],[25,30,"pl-c1"],[41,47,"pl-c1"],[51,54,"pl-c1"],[57,61,"pl-c1"],[67,69,"pl-c1"]],[[20,22,"pl-k"]],[[42,45,"pl-smi"]],[[28,32,"pl-smi"],[43,55,"pl-c1"]],[[28,36,"pl-smi"],[47,55,"pl-smi"]],[[28,31,"pl-smi"],[34,57,"pl-s"],[34,35,"pl-pds"],[56,57,"pl-pds"]],[[36,45,"pl-c1"]],[],[[27,32,"pl-c1"]],[[20,26,"pl-k"]],[],[],[[16,21,"pl-k"],[30,35,"pl-k"],[50,56,"pl-c1"]],[],[[16,21,"pl-k"],[22,26,"pl-k"],[51,54,"pl-c1"],[57,58,"pl-c1"],[63,66,"pl-s"],[63,64,"pl-pds"],[65,66,"pl-pds"]],[[16,21,"pl-k"],[34,40,"pl-smi"],[41,53,"pl-c1"],[62,65,"pl-c1"],[68,74,"pl-c1"],[75,77,"pl-c1"],[87,90,"pl-c1"],[93,97,"pl-c1"],[102,104,"pl-c1"]],[[38,49,"pl-c1"],[68,76,"pl-smi"],[77,81,"pl-c1"]],[[16,18,"pl-k"],[28,33,"pl-c1"]],[[20,41,"pl-c"],[20,22,"pl-c"]],[],[[30,40,"pl-c1"],[57,65,"pl-smi"],[66,70,"pl-c1"]],[[20,22,"pl-k"],[26,33,"pl-c1"]],[[26,31,"pl-c1"]],[[36,41,"pl-k"],[51,54,"pl-k"],[55,64,"pl-c1"]],[[24,26,"pl-k"],[32,46,"pl-smi"]],[[36,50,"pl-c1"]],[],[],[],[[16,18,"pl-k"],[28,33,"pl-c1"]],[[20,22,"pl-k"]],[[42,45,"pl-smi"]],[[28,32,"pl-smi"],[43,57,"pl-c1"]],[[28,36,"pl-smi"],[47,55,"pl-smi"]],[[28,31,"pl-smi"],[34,54,"pl-s"],[34,35,"pl-pds"],[53,54,"pl-pds"],[65,68,"pl-c1"]],[[36,45,"pl-c1"]],[],[[18,22,"pl-k"],[23,25,"pl-k"],[45,49,"pl-c1"],[55,58,"pl-c1"]],[[20,22,"pl-k"]],[[42,45,"pl-smi"]],[[28,32,"pl-smi"],[43,68,"pl-c1"]],[[28,36,"pl-smi"],[47,55,"pl-smi"]],[[28,31,"pl-smi"],[34,62,"pl-s"],[34,35,"pl-pds"],[61,62,"pl-pds"]],[[36,45,"pl-c1"]],[],[[18,22,"pl-k"],[23,25,"pl-k"],[38,42,"pl-c1"],[66,69,"pl-c1"]],[[38,42,"pl-c1"],[43,55,"pl-c1"]],[[20,25,"pl-k"],[38,43,"pl-k"],[69,73,"pl-c1"],[84,90,"pl-smi"]],[[60,66,"pl-c1"],[71,78,"pl-c1"]],[[20,28,"pl-k"]],[],[[14,18,"pl-k"],[19,21,"pl-k"],[31,34,"pl-c1"],[40,42,"pl-c1"],[54,57,"pl-c1"],[63,68,"pl-c1"],[80,83,"pl-c1"],[89,95,"pl-c1"],[107,110,"pl-c1"],[116,120,"pl-c1"]],[[16,18,"pl-k"],[21,29,"pl-c1"],[45,49,"pl-smi"]],[[20,22,"pl-k"]],[[42,45,"pl-smi"]],[[28,32,"pl-smi"],[43,55,"pl-c1"]],[[28,36,"pl-smi"],[47,55,"pl-smi"]],[[28,31,"pl-smi"],[34,53,"pl-s"],[34,35,"pl-pds"],[52,53,"pl-pds"],[64,67,"pl-c1"]],[[36,45,"pl-c1"]],[],[[27,32,"pl-c1"]],[[20,26,"pl-k"]],[],[],[[16,20,"pl-k"]],[[16,18,"pl-k"],[29,32,"pl-c1"],[63,66,"pl-c1"],[94,97,"pl-c1"],[103,107,"pl-c1"]],[[38,43,"pl-c1"]],[[16,20,"pl-k"],[21,23,"pl-k"],[33,36,"pl-c1"],[42,47,"pl-c1"]],[[46,50,"pl-c1"],[59,63,"pl-smi"],[65,68,"pl-c1"],[82,85,"pl-c1"],[114,118,"pl-smi"],[120,123,"pl-c1"],[129,140,"pl-c1"]],[[44,48,"pl-smi"],[50,53,"pl-c1"],[57,66,"pl-c1"],[75,79,"pl-smi"],[81,89,"pl-smi"]],[[18,22,"pl-k"],[23,25,"pl-k"],[35,38,"pl-c1"],[44,50,"pl-c1"]],[[46,50,"pl-c1"],[59,63,"pl-smi"],[65,68,"pl-c1"],[82,85,"pl-c1"],[115,119,"pl-smi"],[121,124,"pl-c1"],[130,141,"pl-c1"]],[[44,48,"pl-smi"],[50,53,"pl-c1"],[57,66,"pl-c1"],[75,79,"pl-smi"],[81,89,"pl-smi"]],[[18,22,"pl-k"],[25,78,"pl-c"],[25,27,"pl-c"],[76,78,"pl-c"]],[[30,34,"pl-smi"]],[[20,23,"pl-k"],[25,30,"pl-k"],[52,56,"pl-smi"],[70,78,"pl-smi"],[79,87,"pl-c1"],[96,104,"pl-smi"],[118,122,"pl-smi"]],[[24,26,"pl-k"],[34,38,"pl-smi"]],[[33,42,"pl-c1"],[43,46,"pl-k"],[47,52,"pl-c1"]],[[28,36,"pl-k"]],[],[],[[24,26,"pl-k"],[33,36,"pl-c1"],[42,49,"pl-c1"]],[[39,43,"pl-smi"]],[[28,33,"pl-k"],[34,38,"pl-k"],[58,60,"pl-smi"],[64,67,"pl-s"],[64,65,"pl-pds"],[66,67,"pl-pds"]],[[28,30,"pl-k"]],[[43,47,"pl-smi"]],[[52,56,"pl-smi"],[58,61,"pl-c1"],[65,74,"pl-c1"],[83,87,"pl-smi"],[89,97,"pl-smi"]],[[28,30,"pl-k"]],[[32,34,"pl-k"],[43,47,"pl-c1"],[53,56,"pl-c1"],[70,73,"pl-c1"]],[[41,50,"pl-c1"],[51,54,"pl-k"],[55,60,"pl-c1"],[61,64,"pl-s"],[61,62,"pl-pds"],[63,64,"pl-pds"],[71,79,"pl-smi"]],[[32,36,"pl-k"],[37,39,"pl-k"],[60,63,"pl-c1"],[69,80,"pl-c1"]],[[41,50,"pl-c1"],[51,54,"pl-k"],[55,60,"pl-c1"],[61,64,"pl-s"],[61,62,"pl-pds"],[63,64,"pl-pds"],[71,79,"pl-smi"]],[[32,36,"pl-k"]],[[41,50,"pl-c1"],[51,54,"pl-k"],[55,60,"pl-c1"],[61,64,"pl-s"],[61,62,"pl-pds"],[63,64,"pl-pds"],[71,79,"pl-smi"]],[],[[28,30,"pl-k"]],[[49,53,"pl-smi"],[56,63,"pl-c1"]],[[28,30,"pl-k"],[41,49,"pl-c1"],[78,80,"pl-smi"],[84,87,"pl-s"],[84,85,"pl-pds"],[86,87,"pl-pds"]],[[32,34,"pl-k"]],[[43,46,"pl-smi"],[55,63,"pl-smi"],[64,69,"pl-smi"]],[[40,44,"pl-smi"],[55,67,"pl-c1"]],[[40,48,"pl-smi"],[59,67,"pl-smi"]],[[40,43,"pl-smi"],[46,67,"pl-s"],[46,47,"pl-pds"],[66,67,"pl-pds"],[70,81,"pl-c1"],[90,93,"pl-c1"],[99,101,"pl-c1"],[104,109,"pl-s"],[104,105,"pl-pds"],[108,109,"pl-pds"],[112,119,"pl-s"],[112,113,"pl-pds"],[118,119,"pl-pds"],[123,135,"pl-s"],[123,124,"pl-pds"],[134,135,"pl-pds"]],[[48,57,"pl-c1"]],[],[[39,44,"pl-c1"]],[[32,38,"pl-k"]],[],[[28,36,"pl-k"]],[],[],[[24,26,"pl-k"],[47,50,"pl-c1"],[56,67,"pl-c1"]],[[39,43,"pl-smi"]],[[28,33,"pl-k"],[34,38,"pl-k"],[58,60,"pl-smi"],[64,67,"pl-s"],[64,65,"pl-pds"],[66,67,"pl-pds"]],[[28,30,"pl-k"]],[[43,47,"pl-smi"]],[[28,32,"pl-k"],[57,62,"pl-c1"]],[[28,30,"pl-k"]],[[32,37,"pl-k"],[72,80,"pl-smi"],[81,85,"pl-c1"]],[[32,37,"pl-k"],[38,42,"pl-k"],[71,73,"pl-smi"],[77,80,"pl-s"],[77,78,"pl-pds"],[79,80,"pl-pds"]],[],[],[[32,34,"pl-k"]],[[36,41,"pl-k"],[55,59,"pl-smi"],[69,71,"pl-smi"],[75,78,"pl-s"],[75,76,"pl-pds"],[77,78,"pl-pds"]],[[55,58,"pl-c1"]],[[36,107,"pl-c"],[36,38,"pl-c"]],[[45,57,"pl-c1"]],[[36,38,"pl-k"],[52,54,"pl-smi"],[58,61,"pl-s"],[58,59,"pl-pds"],[60,61,"pl-pds"]],[[64,68,"pl-c1"]],[],[[32,36,"pl-k"]],[[45,57,"pl-c1"],[63,66,"pl-c1"],[69,75,"pl-c1"],[76,78,"pl-c1"],[85,88,"pl-c1"],[91,95,"pl-c1"],[100,102,"pl-c1"]],[[60,64,"pl-c1"]],[],[],[[32,37,"pl-k"],[60,70,"pl-c1"]],[[37,46,"pl-c1"],[47,50,"pl-k"],[51,56,"pl-c1"],[65,70,"pl-c1"],[75,78,"pl-s"],[75,76,"pl-pds"],[77,78,"pl-pds"],[81,84,"pl-s"],[81,82,"pl-pds"],[83,84,"pl-pds"],[91,99,"pl-smi"]],[],[[28,30,"pl-k"]],[[49,53,"pl-smi"],[56,63,"pl-c1"]],[[28,30,"pl-k"],[41,49,"pl-c1"],[78,80,"pl-smi"],[84,87,"pl-s"],[84,85,"pl-pds"],[86,87,"pl-pds"]],[[32,34,"pl-k"]],[[43,46,"pl-smi"],[55,63,"pl-smi"],[64,69,"pl-smi"]],[[40,44,"pl-smi"],[55,67,"pl-c1"]],[[40,48,"pl-smi"],[59,67,"pl-smi"]],[[40,43,"pl-smi"],[46,67,"pl-s"],[46,47,"pl-pds"],[66,67,"pl-pds"],[70,81,"pl-c1"],[90,93,"pl-c1"],[99,101,"pl-c1"],[104,109,"pl-s"],[104,105,"pl-pds"],[108,109,"pl-pds"],[112,119,"pl-s"],[112,113,"pl-pds"],[118,119,"pl-pds"],[123,135,"pl-s"],[123,124,"pl-pds"],[134,135,"pl-pds"]],[[48,57,"pl-c1"]],[],[[39,44,"pl-c1"]],[[32,38,"pl-k"]],[],[[28,36,"pl-k"]],[],[],[[48,52,"pl-smi"],[54,57,"pl-c1"],[61,70,"pl-c1"],[79,83,"pl-smi"],[85,93,"pl-smi"]],[],[[24,29,"pl-k"]],[[24,26,"pl-k"],[29,44,"pl-c1"]],[[35,40,"pl-c1"]],[[28,34,"pl-k"]],[],[[24,26,"pl-k"]],[[28,33,"pl-k"]],[[35,43,"pl-smi"]],[],[[20,23,"pl-k"]],[[24,26,"pl-k"]],[],[[28,31,"pl-k"],[33,38,"pl-k"],[68,74,"pl-c1"],[94,98,"pl-smi"]],[[40,45,"pl-c1"],[50,52,"pl-s"],[50,51,"pl-pds"],[51,52,"pl-pds"],[55,58,"pl-s"],[55,56,"pl-pds"],[57,58,"pl-pds"],[67,70,"pl-c1"]],[[28,33,"pl-k"],[34,38,"pl-k"],[39,43,"pl-k"],[53,61,"pl-c1"]],[[57,58,"pl-c1"]],[[36,45,"pl-c1"],[46,52,"pl-c1"],[61,69,"pl-smi"]],[[26,30,"pl-k"]],[[28,33,"pl-k"],[34,38,"pl-k"],[39,43,"pl-k"],[53,61,"pl-c1"]],[[57,58,"pl-c1"]],[],[[22,27,"pl-k"],[29,34,"pl-k"]],[[24,26,"pl-k"]],[[35,38,"pl-smi"],[47,55,"pl-smi"],[56,61,"pl-smi"]],[[32,36,"pl-smi"],[47,59,"pl-c1"]],[[32,40,"pl-smi"],[51,59,"pl-smi"]],[[32,35,"pl-smi"],[38,59,"pl-s"],[38,39,"pl-pds"],[58,59,"pl-pds"],[62,73,"pl-c1"],[82,85,"pl-c1"],[91,93,"pl-c1"],[96,101,"pl-s"],[96,97,"pl-pds"],[100,101,"pl-pds"],[104,111,"pl-s"],[104,105,"pl-pds"],[110,111,"pl-pds"],[115,127,"pl-s"],[115,116,"pl-pds"],[126,127,"pl-pds"]],[[28,30,"pl-k"],[34,38,"pl-c1"],[47,51,"pl-c1"]],[[36,39,"pl-smi"],[43,54,"pl-c1"],[55,59,"pl-s"],[55,56,"pl-pds"],[58,59,"pl-pds"],[65,69,"pl-c1"]],[[40,49,"pl-c1"]],[],[[31,36,"pl-c1"]],[[24,30,"pl-k"]],[],[],[],[[16,18,"pl-k"],[28,31,"pl-c1"],[37,41,"pl-c1"]],[[20,43,"pl-c"],[20,22,"pl-c"]],[[20,22,"pl-k"],[33,36,"pl-c1"]],[[33,37,"pl-c1"]],[[20,24,"pl-k"]],[[33,37,"pl-c1"]],[[18,22,"pl-k"],[23,25,"pl-k"],[36,39,"pl-c1"]],[[29,32,"pl-c1"]],[[18,22,"pl-k"],[23,25,"pl-k"],[36,39,"pl-c1"]],[[29,32,"pl-c1"]],[],[[14,18,"pl-k"],[19,21,"pl-k"],[31,34,"pl-c1"],[40,44,"pl-c1"]],[[25,28,"pl-c1"],[43,46,"pl-c1"]],[[14,18,"pl-k"],[19,21,"pl-k"],[31,34,"pl-c1"],[40,45,"pl-c1"]],[[25,28,"pl-c1"]],[[14,18,"pl-k"],[19,21,"pl-k"],[31,34,"pl-c1"],[40,45,"pl-c1"]],[[16,18,"pl-k"],[29,32,"pl-c1"]],[[20,25,"pl-k"],[47,51,"pl-smi"]],[[20,25,"pl-k"],[27,35,"pl-c1"],[56,63,"pl-smi"]],[[35,39,"pl-smi"]],[[20,22,"pl-k"],[24,32,"pl-c1"]],[[31,36,"pl-c1"],[42,45,"pl-c1"]],[],[[14,18,"pl-k"],[19,21,"pl-k"],[32,35,"pl-c1"],[57,60,"pl-c1"],[66,72,"pl-c1"],[84,88,"pl-smi"],[100,104,"pl-smi"],[106,109,"pl-c1"],[115,119,"pl-c1"],[123,131,"pl-c1"],[147,151,"pl-smi"]],[[27,33,"pl-c1"],[42,50,"pl-smi"],[51,55,"pl-c1"]],[],[[21,33,"pl-c1"]],[[12,20,"pl-k"]],[],[],[[8,10,"pl-k"],[21,24,"pl-c1"]],[[12,24,"pl-c"],[12,14,"pl-c"]],[[21,33,"pl-c1"]],[[12,20,"pl-k"]],[],[],[[8,12,"pl-k"],[18,23,"pl-c1"],[34,39,"pl-c1"]],[[8,10,"pl-k"],[20,22,"pl-smi"],[26,29,"pl-s"],[26,27,"pl-pds"],[28,29,"pl-pds"],[33,41,"pl-c1"],[57,61,"pl-smi"]],[[12,14,"pl-k"],[24,28,"pl-smi"],[30,32,"pl-smi"],[36,39,"pl-s"],[36,37,"pl-pds"],[38,39,"pl-pds"]],[[23,27,"pl-c1"]],[[33,37,"pl-smi"],[39,50,"pl-c"],[39,41,"pl-c"]],[[14,18,"pl-k"],[19,21,"pl-k"],[23,31,"pl-c1"],[47,51,"pl-smi"],[53,57,"pl-smi"]],[[27,31,"pl-c1"]],[[33,37,"pl-smi"],[39,43,"pl-smi"],[45,60,"pl-c"],[45,47,"pl-c"]],[],[],[],[[8,13,"pl-k"],[23,26,"pl-smi"],[35,43,"pl-smi"]],[[18,24,"pl-smi"]],[],[[8,10,"pl-k"],[13,28,"pl-c1"]],[[19,24,"pl-c1"]],[[12,18,"pl-k"]],[],[],[[8,10,"pl-k"]],[],[[12,15,"pl-k"],[17,22,"pl-k"],[47,53,"pl-c1"],[85,89,"pl-smi"]],[[30,33,"pl-c1"]],[[12,14,"pl-k"]],[[23,32,"pl-c1"],[33,36,"pl-k"],[37,42,"pl-c1"],[43,47,"pl-s"],[43,44,"pl-pds"],[44,46,"pl-cce"],[46,47,"pl-pds"],[54,58,"pl-s"],[54,55,"pl-pds"],[55,57,"pl-cce"],[57,58,"pl-pds"]],[[12,16,"pl-k"],[17,19,"pl-k"],[28,32,"pl-c1"]],[[23,27,"pl-c1"],[31,37,"pl-c1"],[45,50,"pl-c1"],[54,57,"pl-c1"]],[[12,16,"pl-k"]],[[23,32,"pl-c1"],[33,36,"pl-k"],[37,42,"pl-c1"]],[[10,14,"pl-k"]],[[19,29,"pl-c1"]],[],[],[],[[4,6,"pl-k"]],[[8,11,"pl-k"],[66,71,"pl-c1"],[93,96,"pl-c1"]],[[12,17,"pl-k"],[42,48,"pl-smi"]],[[46,51,"pl-c1"]],[[12,17,"pl-k"],[68,72,"pl-c1"]],[[18,24,"pl-c1"],[31,34,"pl-c1"],[43,48,"pl-c1"],[57,60,"pl-c1"]],[[12,15,"pl-k"],[69,74,"pl-c1"],[95,98,"pl-c1"]],[[27,29,"pl-smi"],[39,44,"pl-smi"],[52,70,"pl-c1"]],[[19,28,"pl-smi"],[37,41,"pl-c1"]],[[19,32,"pl-smi"],[41,55,"pl-c1"]],[[19,30,"pl-smi"]],[[28,37,"pl-c1"]],[],[],[],[],[],[[0,4,"pl-k"],[5,23,"pl-en"]],[],[[4,7,"pl-k"],[67,72,"pl-c1"],[91,94,"pl-c1"]],[[8,14,"pl-k"],[19,25,"pl-smi"]],[[13,18,"pl-c1"]],[],[],[[11,17,"pl-c1"],[18,36,"pl-en"],[37,42,"pl-k"]],[],[[4,6,"pl-k"],[15,20,"pl-s"],[15,16,"pl-pds"],[19,20,"pl-pds"],[31,36,"pl-s"],[31,32,"pl-pds"],[35,36,"pl-pds"],[47,61,"pl-s"],[47,48,"pl-pds"],[60,61,"pl-pds"],[72,88,"pl-s"],[72,73,"pl-pds"],[87,88,"pl-pds"],[99,106,"pl-s"],[99,100,"pl-pds"],[105,106,"pl-pds"],[117,124,"pl-s"],[117,118,"pl-pds"],[123,124,"pl-pds"]],[[8,14,"pl-k"],[15,18,"pl-c1"]],[[4,6,"pl-k"],[15,20,"pl-s"],[15,16,"pl-pds"],[19,20,"pl-pds"],[31,36,"pl-s"],[31,32,"pl-pds"],[35,36,"pl-pds"],[47,61,"pl-s"],[47,48,"pl-pds"],[60,61,"pl-pds"],[72,86,"pl-s"],[72,73,"pl-pds"],[85,86,"pl-pds"],[97,104,"pl-s"],[97,98,"pl-pds"],[103,104,"pl-pds"],[114,121,"pl-s"],[114,115,"pl-pds"],[120,121,"pl-pds"]],[[8,14,"pl-k"],[15,18,"pl-c1"]],[[4,6,"pl-k"],[15,20,"pl-s"],[15,16,"pl-pds"],[19,20,"pl-pds"],[31,36,"pl-s"],[31,32,"pl-pds"],[35,36,"pl-pds"],[47,61,"pl-s"],[47,48,"pl-pds"],[60,61,"pl-pds"],[72,79,"pl-s"],[72,73,"pl-pds"],[78,79,"pl-pds"],[90,97,"pl-s"],[90,91,"pl-pds"],[96,97,"pl-pds"]],[[8,14,"pl-k"],[15,18,"pl-c1"]],[[4,6,"pl-k"],[15,20,"pl-s"],[15,16,"pl-pds"],[19,20,"pl-pds"],[31,36,"pl-s"],[31,32,"pl-pds"],[35,36,"pl-pds"],[47,61,"pl-s"],[47,48,"pl-pds"],[60,61,"pl-pds"],[72,86,"pl-s"],[72,73,"pl-pds"],[85,86,"pl-pds"],[97,104,"pl-s"],[97,98,"pl-pds"],[103,104,"pl-pds"],[114,121,"pl-s"],[114,115,"pl-pds"],[120,121,"pl-pds"]],[[8,14,"pl-k"],[15,18,"pl-c1"]],[[4,6,"pl-k"],[15,20,"pl-s"],[15,16,"pl-pds"],[19,20,"pl-pds"],[31,38,"pl-s"],[31,32,"pl-pds"],[37,38,"pl-pds"],[49,54,"pl-s"],[49,50,"pl-pds"],[53,54,"pl-pds"],[65,72,"pl-s"],[65,66,"pl-pds"],[71,72,"pl-pds"]],[[8,14,"pl-k"],[15,18,"pl-c1"]],[[4,10,"pl-k"]],[],[],[[12,36,"pl-en"],[37,43,"pl-c1"]],[],[[4,10,"pl-k"]],[],[[8,12,"pl-k"],[13,16,"pl-c1"]],[[12,102,"pl-c"],[12,14,"pl-c"]],[[12,18,"pl-k"],[19,21,"pl-s"],[19,20,"pl-pds"],[20,21,"pl-pds"]],[[8,12,"pl-k"],[13,16,"pl-c1"]],[[12,18,"pl-k"],[19,28,"pl-s"],[19,20,"pl-pds"],[27,28,"pl-pds"]],[[8,12,"pl-k"],[13,16,"pl-c1"]],[[12,18,"pl-k"],[19,28,"pl-s"],[19,20,"pl-pds"],[27,28,"pl-pds"]],[[8,12,"pl-k"],[13,16,"pl-c1"]],[[12,18,"pl-k"],[19,28,"pl-s"],[19,20,"pl-pds"],[27,28,"pl-pds"]],[[8,12,"pl-k"],[13,16,"pl-c1"]],[[12,47,"pl-c"],[12,14,"pl-c"]],[[12,55,"pl-c"],[12,14,"pl-c"]],[[12,52,"pl-c"],[12,14,"pl-c"]],[[12,87,"pl-c"],[12,14,"pl-c"]],[[12,18,"pl-k"],[19,28,"pl-s"],[19,20,"pl-pds"],[27,28,"pl-pds"]],[[8,12,"pl-k"]],[[12,18,"pl-k"],[19,21,"pl-s"],[19,20,"pl-pds"],[20,21,"pl-pds"]],[],[[4,10,"pl-k"],[11,13,"pl-s"],[11,12,"pl-pds"],[12,13,"pl-pds"]],[],[],[[12,36,"pl-en"],[37,42,"pl-k"]],[],[[4,10,"pl-k"],[11,24,"pl-c1"],[25,32,"pl-c1"]],[],[],[[11,19,"pl-c1"],[20,40,"pl-en"],[41,46,"pl-k"]],[],[[4,6,"pl-k"],[15,22,"pl-s"],[15,16,"pl-pds"],[21,22,"pl-pds"],[33,40,"pl-s"],[33,34,"pl-pds"],[39,40,"pl-pds"],[51,60,"pl-s"],[51,52,"pl-pds"],[59,60,"pl-pds"],[71,80,"pl-s"],[71,72,"pl-pds"],[79,80,"pl-pds"]],[[8,14,"pl-k"],[15,20,"pl-c1"]],[[4,6,"pl-k"],[15,22,"pl-s"],[15,16,"pl-pds"],[21,22,"pl-pds"],[33,42,"pl-s"],[33,34,"pl-pds"],[41,42,"pl-pds"],[53,60,"pl-s"],[53,54,"pl-pds"],[59,60,"pl-pds"],[71,80,"pl-s"],[71,72,"pl-pds"],[79,80,"pl-pds"]],[[8,14,"pl-k"],[15,20,"pl-c1"]],[[4,6,"pl-k"],[15,22,"pl-s"],[15,16,"pl-pds"],[21,22,"pl-pds"],[33,40,"pl-s"],[33,34,"pl-pds"],[39,40,"pl-pds"],[51,60,"pl-s"],[51,52,"pl-pds"],[59,60,"pl-pds"],[71,80,"pl-s"],[71,72,"pl-pds"],[79,80,"pl-pds"]],[[8,14,"pl-k"],[15,20,"pl-c1"]],[[4,6,"pl-k"],[15,22,"pl-s"],[15,16,"pl-pds"],[21,22,"pl-pds"],[33,40,"pl-s"],[33,34,"pl-pds"],[39,40,"pl-pds"],[51,60,"pl-s"],[51,52,"pl-pds"],[59,60,"pl-pds"],[71,80,"pl-s"],[71,72,"pl-pds"],[79,80,"pl-pds"]],[[8,14,"pl-k"],[15,20,"pl-c1"]],[[4,6,"pl-k"],[15,22,"pl-s"],[15,16,"pl-pds"],[21,22,"pl-pds"],[33,40,"pl-s"],[33,34,"pl-pds"],[39,40,"pl-pds"],[51,60,"pl-s"],[51,52,"pl-pds"],[59,60,"pl-pds"],[71,80,"pl-s"],[71,72,"pl-pds"],[79,80,"pl-pds"]],[[8,14,"pl-k"],[15,20,"pl-c1"]],[[4,6,"pl-k"],[15,22,"pl-s"],[15,16,"pl-pds"],[21,22,"pl-pds"],[33,40,"pl-s"],[33,34,"pl-pds"],[39,40,"pl-pds"],[51,60,"pl-s"],[51,52,"pl-pds"],[59,60,"pl-pds"],[71,80,"pl-s"],[71,72,"pl-pds"],[79,80,"pl-pds"]],[[8,14,"pl-k"],[15,20,"pl-c1"]],[[4,6,"pl-k"],[15,22,"pl-s"],[15,16,"pl-pds"],[21,22,"pl-pds"],[33,40,"pl-s"],[33,34,"pl-pds"],[39,40,"pl-pds"],[51,60,"pl-s"],[51,52,"pl-pds"],[59,60,"pl-pds"],[71,80,"pl-s"],[71,72,"pl-pds"],[79,80,"pl-pds"]],[[8,14,"pl-k"],[15,20,"pl-c1"]],[[4,10,"pl-k"]],[],[],[[12,38,"pl-en"],[39,47,"pl-c1"]],[],[[4,10,"pl-k"]],[],[[8,12,"pl-k"],[13,18,"pl-c1"]],[[12,18,"pl-k"],[19,28,"pl-s"],[19,20,"pl-pds"],[27,28,"pl-pds"]],[[8,12,"pl-k"],[13,18,"pl-c1"]],[[12,18,"pl-k"],[19,28,"pl-s"],[19,20,"pl-pds"],[27,28,"pl-pds"]],[[8,12,"pl-k"],[13,18,"pl-c1"]],[[12,18,"pl-k"],[19,28,"pl-s"],[19,20,"pl-pds"],[27,28,"pl-pds"]],[[8,12,"pl-k"],[13,18,"pl-c1"]],[[12,18,"pl-k"],[19,28,"pl-s"],[19,20,"pl-pds"],[27,28,"pl-pds"]],[[8,12,"pl-k"],[13,18,"pl-c1"]],[[12,56,"pl-c"],[12,14,"pl-c"]],[[12,18,"pl-k"],[19,28,"pl-s"],[19,20,"pl-pds"],[27,28,"pl-pds"]],[[8,12,"pl-k"],[13,18,"pl-c1"]],[[12,49,"pl-c"],[12,14,"pl-c"]],[[12,46,"pl-c"],[12,14,"pl-c"]],[[12,97,"pl-c"],[12,14,"pl-c"]],[[12,44,"pl-c"],[12,14,"pl-c"]],[[12,18,"pl-k"],[19,28,"pl-s"],[19,20,"pl-pds"],[27,28,"pl-pds"]],[[8,12,"pl-k"],[13,18,"pl-c1"]],[[12,37,"pl-c"],[12,14,"pl-c"]],[[12,18,"pl-k"],[19,28,"pl-s"],[19,20,"pl-pds"],[27,28,"pl-pds"]],[[8,12,"pl-k"]],[[12,18,"pl-k"],[19,21,"pl-s"],[19,20,"pl-pds"],[20,21,"pl-pds"]],[],[[4,10,"pl-k"],[11,13,"pl-s"],[11,12,"pl-pds"],[12,13,"pl-pds"]],[],[],[[12,38,"pl-en"],[39,44,"pl-k"]],[],[[4,10,"pl-k"],[11,26,"pl-c1"],[27,36,"pl-c1"]],[],[],[[1,3,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"]]],"colorizedLines":null}},"title":"simplecpp/simplecpp.cpp at master · tmpvar/simplecpp","appPayload":{},"meta":{"title":"simplecpp/simplecpp.cpp at master · tmpvar/simplecpp"}}</script>
  <div data-target="react-app.reactRoot"><meta name="github-code-view-meta-stats" id="github-code-view-meta-stats" data-hydrostats="publish"/> <!-- --> <a hidden="" id="code-view-repo-link" href="/tmpvar/simplecpp" data-discover="true"></a> <div class="d-none"></div><div><div style="--spacing:var(--spacing-none)" class="prc-PageLayout-PageLayoutRoot--KH-d" data-component="SplitPageLayout" data-has-sidebar="true"><div class="prc-PageLayout-SidebarWrapper-kLG4B CopilotSidePanelSidebar-module__SidePanel__L3O0C CopilotSidePanelSidebar-module__HiddenSidePanel__TBRGn" style="--spacing-column:var(--spacing-none)" data-is-hidden="false" data-position="end" data-sticky="true" data-responsive-variant="fullscreen"><div class="prc-PageLayout-VerticalDivider-9QRmK prc-PageLayout-SidebarVerticalDivider-0Rl0V" data-component="PageLayout.VerticalDivider" data-variant="line" data-position="end" style="--spacing:var(--spacing-none)"><div class="prc-PageLayout-DraggableHandle-9s6B4" data-component="PageLayout.DragHandle" role="slider" aria-label="Draggable pane splitter" aria-valuemin="450" aria-valuemax="768" aria-valuenow="544" aria-valuetext="Pane width 544 pixels" tabindex="0"></div></div><div class="prc-PageLayout-Sidebar-iciWg" data-component="SplitPageLayout.Sidebar" data-resizable="true" style="--spacing:var(--spacing-normal);--pane-min-width:450px;--pane-max-width:768px;--pane-width-custom:544px;--pane-width-size:var(--pane-width-custom);--pane-width:544px"><div class="height-full" data-testid="copilot-code-view-side-panel"><div id="copilot-side-panel-content" class="height-full"></div></div></div></div><div class="prc-PageLayout-PageLayoutWrapper-2BhU2" data-width="full"><div class="prc-PageLayout-PageLayoutContent-BneH9"><div id="repos-file-tree-sidebar" class="CodeViewFileTreeLayout-module__sidebar__n_Aau" tabindex="0"><div class="prc-PageLayout-PaneWrapper-pHPop ReposFileTreePane-module__Pane__rBZpI ReposFileTreePane-module__HideTree__AYZnm ReposFileTreePane-module__HidePane__VHAVt" style="--offset-header:0px;--spacing-row:var(--spacing-none);--spacing-column:var(--spacing-none)" data-is-hidden="false" data-position="start" data-sticky="true"><div class="prc-PageLayout-HorizontalDivider-JLVqp prc-PageLayout-PaneHorizontalDivider-9tbnE" data-component="PageLayout.HorizontalDivider" data-variant-regular="none" data-variant-narrow="none" data-position="start" style="--spacing-divider:var(--spacing-none);--spacing:var(--spacing-none)"></div><div class="prc-PageLayout-Pane-AyzHK" data-component="SplitPageLayout.Pane" data-resizable="true" style="--spacing:var(--spacing-none);--pane-min-width:256px;--pane-max-width:calc(100vw - var(--pane-max-width-diff));--pane-width-size:var(--pane-width-large);--pane-width:320px"></div><div class="prc-PageLayout-VerticalDivider-9QRmK prc-PageLayout-PaneVerticalDivider-le57g" data-component="PageLayout.VerticalDivider" data-variant-narrow="none" data-variant-regular="line" data-variant-wide="line" data-position="start" style="--spacing:var(--spacing-none)"><div class="prc-PageLayout-DraggableHandle-9s6B4" data-component="PageLayout.DragHandle" role="slider" aria-label="Draggable pane splitter" aria-valuemin="256" aria-valuemax="600" aria-valuenow="320" aria-valuetext="Pane width 320 pixels" tabindex="0"></div></div></div></div><div data-component="SplitPageLayout.Content" class="prc-PageLayout-ContentWrapper-gR9eG"><div class="prc-PageLayout-Content-xWL-A" data-width="full" style="--spacing:var(--spacing-none)"><div class="SharedPageLayout-module__content__IwGAp" data-selector="repos-split-pane-content" id="repos-split-pane-content" tabindex="0"> <!-- --> <div class="container CodeViewHeader-module__Box__JkPOb"><div class="CodeViewHeader-module__StickyHeader__Qn7UN" id="StickyHeader"><div class="CodeViewHeader-module__Box_1__SbNDV"><div class="CodeViewHeader-module__Box_2__TB46f"><div class="react-code-view-header-wrap--narrow CodeViewHeader-module__Box_3__q1zUL"><div class="CodeViewHeader-module__treeToggleWrapper__RQ__9"><h2 class="use-tree-pane-module__Heading__s4QbZ prc-Heading-Heading-MtWFE" data-component="Heading"><button data-component="Button" type="button" aria-label="Expand file tree" data-testid="expand-file-tree-button-mobile" class="prc-Button-ButtonBase-9n-Xk ExpandFileTreeButton-module__Button_1__Svs95" data-loading="false" data-size="medium" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-arrow-left" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.78 12.53a.75.75 0 0 1-1.06 0L2.47 8.28a.75.75 0 0 1 0-1.06l4.25-4.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L4.81 7h7.44a.75.75 0 0 1 0 1.5H4.81l2.97 2.97a.75.75 0 0 1 0 1.06Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3">Files</span></span></button><button data-component="IconButton" type="button" data-testid="expand-file-tree-button" aria-controls="repos-file-tree" class="prc-Button-ButtonBase-9n-Xk position-relative ExpandFileTreeButton-module__expandButton__hDOcv ExpandFileTreeButton-module__filesButtonBreakpoint__zEvz3 fgColor-muted prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-labelledby="_R_4lla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-sidebar-collapse" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M6.823 7.823a.25.25 0 0 1 0 .354l-2.396 2.396A.25.25 0 0 1 4 10.396V5.604a.25.25 0 0 1 .427-.177Z"></path><path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25H9.5v-13H1.75a.25.25 0 0 0-.25.25ZM11 14.5h3.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H11Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="se" data-component="Tooltip" aria-hidden="true" id="_R_4lla9lik5_">Expand file tree</span><div class="d-none"></div></h2></div><div class="react-code-view-header-mb--narrow mr-2"><button data-component="Button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="master branch" data-testid="anchor-button" data-icv-name="Switch branches/tags" class="prc-Button-ButtonBase-9n-Xk ref-selector-class RefSelectorAnchoredOverlay-module__RefSelectorOverlayBtn__a3WK3" data-loading="false" data-size="medium" data-variant="default" id="ref-picker-repos-header-ref-selector-wide"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><div class="RefSelectorAnchoredOverlay-module__RefSelectorOverlayContainer__yaf4p"><div style="max-width:125px" class="ref-selector-button-text-container RefSelectorAnchoredOverlay-module__RefSelectorBtnTextContainer__Di3rk"><span class="RefSelectorAnchoredOverlay-module__RefSelectorText__w_fmP">master</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><div class="d-none"></div></div><div class="react-code-view-header-mb--narrow CodeViewHeader-module__Box_5__MQ0hL"><div class="Breadcrumb-module__container__Vxvev Breadcrumb-module__lg__Rjz0A"><nav data-testid="breadcrumbs" aria-labelledby="repos-header-breadcrumb-heading" id="repos-header-breadcrumb" class="Breadcrumb-module__nav__rQFDj"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading" id="repos-header-breadcrumb-heading">Breadcrumbs</h2><ol class="Breadcrumb-module__list__ZH6zr"><li class="Breadcrumb-module__listItem__Ib0x_"><a class="Breadcrumb-module__repoLink__O2Nbs prc-Link-Link-9ZwDx" data-component="Link" data-testid="breadcrumbs-repo-link" href="/tmpvar/simplecpp/tree/master" data-discover="true">simplecpp</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Breadcrumb-module__filename__equZR"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__lg__Rjz0A" aria-hidden="true">/</span><h1 class="Breadcrumb-module__filenameHeading__MNMtw Breadcrumb-module__lg__Rjz0A prc-Heading-Heading-MtWFE" data-component="Heading" tabindex="-1" id="file-name-id">simplecpp.cpp</h1></div><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-9n-Xk ml-2 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_7lla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="CopyToClipboardIconButton-module__tooltip__WyiwL prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-label="Copy path" aria-hidden="true" id="_R_7lla9lik5_">Copy path</span></div></div></div><div class="react-code-view-header-element--wide"><div class="CodeViewHeader-module__Box_7___0R6c"><div class="d-flex gap-2"><div><div class="CodeViewHeader-module__FileResultsList__JDzUy"><span class="d-flex FileResultsList-module__FilesSearchBox__ivVkc TextInput-wrapper prc-components-TextInputWrapper-Hpdqi prc-components-TextInputBaseWrapper-wY-n0" data-no-trailing-action="true" data-component="TextInput" data-leading-visual="true" data-trailing-visual="true" aria-busy="false"><span class="TextInput-icon" id="_R_5ipla9lik5_" aria-hidden="true" data-component="TextInput.LeadingVisual"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-search" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg></span><input type="text" aria-label="Go to file" role="combobox" aria-controls="file-results-list" aria-expanded="false" aria-haspopup="dialog" autoCorrect="off" spellCheck="false" placeholder="Go to file" aria-describedby="_R_5ipla9lik5_ _R_5ipla9lik5H1_" data-component="input" class="prc-components-Input-IwWrt" value=""/><span class="TextInput-icon" id="_R_5ipla9lik5H1_" aria-hidden="true" data-component="TextInput.TrailingVisual"></span></span></div><div class="d-none"></div></div><div class="d-none"></div><button data-component="Button" type="button" style="display:none" class="prc-Button-ButtonBase-9n-Xk NavigationMenu-module__Button__LpKgm" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Blame</span></span></button><div class="d-none"></div><button data-component="IconButton" type="button" data-testid="more-file-actions-button-nav-menu-wide" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click NavigationMenu-module__IconButton__HpX3G prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-labelledby="_R_v4pla9lik5_" id="_R_14pla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_v4pla9lik5_">More file actions</span></div></div></div><div class="react-code-view-header-element--narrow"><div class="CodeViewHeader-module__Box_7___0R6c"><div class="d-flex gap-2"><div class="d-none"></div><button data-component="Button" type="button" style="display:none" class="prc-Button-ButtonBase-9n-Xk NavigationMenu-module__Button__LpKgm" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Blame</span></span></button><div class="d-none"></div><button data-component="IconButton" type="button" data-testid="more-file-actions-button-nav-menu-narrow" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click NavigationMenu-module__IconButton__HpX3G prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-labelledby="_R_v4tla9lik5_" id="_R_14tla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_v4tla9lik5_">More file actions</span></div></div></div></div></div></div></div><div class="CodeView-module__contentWrapper__cG2JH"><div class="react-code-view-bottom-padding"><div class="BlobTopBanners-module__Box__v_nvx"></div></div> <div class="d-none"></div><div class="d-flex flex-column border rounded-2 tmp-mb-3 pl-1"><div class="LatestCommit-module__Box__B25ZT"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">Latest commit</h2><div style="width:120px" class="Skeleton Skeleton--text" data-testid="loading"> </div><div class="d-flex flex-shrink-0 gap-2"><div data-testid="latest-commit-details" class="d-none d-sm-flex flex-items-center"></div><div class="d-flex gap-2"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">History</h2><a data-component="LinkButton" href="/tmpvar/simplecpp/commits/master/simplecpp.cpp" class="prc-Button-ButtonBase-9n-Xk d-none d-lg-flex LinkButton-module__linkButton__nFnov flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><span class="fgColor-default">History</span></span></span></a><div class="d-sm-none"></div><div class="d-flex d-lg-none"><a data-component="LinkButton" aria-label="View commit history for this file." href="/tmpvar/simplecpp/commits/master/simplecpp.cpp" class="prc-Button-ButtonBase-9n-Xk LinkButton-module__linkButton__nFnov flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible" aria-describedby="_R_4mlala9lik5_"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span></span></a><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="s" data-component="Tooltip" role="tooltip" aria-hidden="true" id="_R_4mlala9lik5_">History</span></div></div></div></div></div><div class="d-flex flex-row"><div class="container BlobViewContent-module__blobContainer__DtH2d"><div class="react-code-size-details-banner BlobViewContent-module__codeSizeDetails__e5sUw"><div class="react-code-size-details-banner CodeSizeDetails-module__Box__VcD6l"><div class="text-mono CodeSizeDetails-module__Box_1__GVxQL"><div class="CodeSizeDetails-module__Truncate__Ttm43 prc-Truncate-Truncate-2G1eo" data-inline="true" title="executable file" style="--truncate-max-width:125px"><span>executable file</span></div><span class="CodeSizeDetails-module__Text__k8GnB">·</span><div data-testid="blob-size" class="CodeSizeDetails-module__Truncate_1__lE93V prc-Truncate-Truncate-2G1eo" data-inline="true" title="143 KB" style="--truncate-max-width:100%"><span>3882 lines (3447 loc) · 143 KB</span></div></div></div></div><div class="react-blob-view-header-sticky BlobViewContent-module__stickyHeader__VwxB5" id="repos-sticky-header"><div class="BlobViewHeader-module__Box__yhm9u"><div class="react-blob-sticky-header"><div class="FileNameStickyHeader-module__outerWrapper__ZL4Xc FileNameStickyHeader-module__outerWrapperHidden__Zpynk"><div class="FileNameStickyHeader-module__Box_1__Hazu5"><div class="FileNameStickyHeader-module__Box_2__hoolP"><div class="FileNameStickyHeader-module__Box_3__MVKsk"><button data-component="Button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="master branch" data-testid="anchor-button" data-icv-name="Switch branches/tags" class="prc-Button-ButtonBase-9n-Xk ref-selector-class RefSelectorAnchoredOverlay-module__RefSelectorOverlayBtn__a3WK3" data-loading="false" data-size="medium" data-variant="default" id="ref-picker-repos-header-ref-selector"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><div class="RefSelectorAnchoredOverlay-module__RefSelectorOverlayContainer__yaf4p"><div style="max-width:125px" class="ref-selector-button-text-container RefSelectorAnchoredOverlay-module__RefSelectorBtnTextContainer__Di3rk"><span class="RefSelectorAnchoredOverlay-module__RefSelectorText__w_fmP">master</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><div class="d-none"></div></div><div class="FileNameStickyHeader-module__Box_4__FLhtt"><div class="Breadcrumb-module__container__Vxvev Breadcrumb-module__md__Wb1Gs"><nav data-testid="breadcrumbs" aria-labelledby="sticky-breadcrumb-heading" id="sticky-breadcrumb" class="Breadcrumb-module__nav__rQFDj"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading" id="sticky-breadcrumb-heading">Breadcrumbs</h2><ol class="Breadcrumb-module__list__ZH6zr"><li class="Breadcrumb-module__listItem__Ib0x_"><a class="Breadcrumb-module__repoLink__O2Nbs prc-Link-Link-9ZwDx" data-component="Link" data-testid="breadcrumbs-repo-link" href="/tmpvar/simplecpp/tree/master" data-discover="true">simplecpp</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Breadcrumb-module__filename__equZR"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__md__Wb1Gs" aria-hidden="true">/</span><h1 class="Breadcrumb-module__filenameHeading__MNMtw Breadcrumb-module__md__Wb1Gs prc-Heading-Heading-MtWFE" data-component="Heading" tabindex="-1" id="sticky-file-name-id">simplecpp.cpp</h1></div><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-9n-Xk ml-2 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_7lcpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="CopyToClipboardIconButton-module__tooltip__WyiwL prc-TooltipV2-Tooltip-tLeuB" data-direction="s" data-component="Tooltip" aria-label="Copy path" aria-hidden="true" id="_R_7lcpala9lik5_">Copy path</span></div></div></div><button data-component="Button" type="button" class="prc-Button-ButtonBase-9n-Xk FileNameStickyHeader-module__Button__LSEU_ FileNameStickyHeader-module__GoToTopButton__nxAFn" data-loading="false" data-size="small" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-arrow-up" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.47 7.78a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0l4.25 4.25a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018L9 4.81v7.44a.75.75 0 0 1-1.5 0V4.81L4.53 7.78a.75.75 0 0 1-1.06 0Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3">Top</span></span></button></div></div></div><div class="BlobViewHeader-module__Box_1__VEmuQ"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">File metadata and controls</h2><div class="BlobViewHeader-module__Box_2__icUs2"><ul aria-label="File view" class="prc-SegmentedControl-SegmentedControl-lqIXp BlobTabButtons-module__SegmentedControl__jen2u" data-variant="default" data-size="small" data-component="SegmentedControl"><li class="prc-SegmentedControl-Item-tSCQh" data-selected="" data-component="SegmentedControl.Button"><button aria-pressed="true" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:transparent"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Code">Code</div></span></button></li><li class="prc-SegmentedControl-Item-tSCQh" data-component="SegmentedControl.Button"><button aria-pressed="false" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:var(--borderColor-default)"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Blame">Blame</div></span></button></li></ul><div class="d-none"></div><div class="react-code-size-details-in-header CodeSizeDetails-module__Box__VcD6l"><div class="text-mono CodeSizeDetails-module__Box_1__GVxQL"><div class="CodeSizeDetails-module__Truncate__Ttm43 prc-Truncate-Truncate-2G1eo" data-inline="true" title="executable file" style="--truncate-max-width:125px"><span>executable file</span></div><span class="CodeSizeDetails-module__Text__k8GnB">·</span><div data-testid="blob-size" class="CodeSizeDetails-module__Truncate_1__lE93V prc-Truncate-Truncate-2G1eo" data-inline="true" title="143 KB" style="--truncate-max-width:100%"><span>3882 lines (3447 loc) · 143 KB</span></div></div></div></div><div class="BlobViewHeader-module__Box_3__ng6v2"><div class="d-none"></div><div class="react-blob-header-edit-and-raw-actions BlobViewHeader-module__Box_4__J4Y4W"><div class="d-none"></div><div class="prc-ButtonGroup-ButtonGroup-vFUrY" data-component="ButtonGroup"><div class="prc-ButtonGroup-Item-PqvDl"><a data-component="LinkButton" href="https://github.com/tmpvar/simplecpp/raw/refs/heads/master/simplecpp.cpp" data-testid="raw-button" class="prc-Button-ButtonBase-9n-Xk LinkButton-module__linkButton__nFnov BlobViewHeader-module__LinkButton__X9kx2" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Raw</span></span></a></div><div class="prc-ButtonGroup-Item-PqvDl"><button data-component="IconButton" type="button" data-testid="copy-raw-button" class="prc-Button-ButtonBase-9n-Xk prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-labelledby="_R_qaucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_qaucpala9lik5_">Copy raw file</span></div><div class="prc-ButtonGroup-Item-PqvDl"><button data-component="IconButton" type="button" data-testid="download-raw-button" class="prc-Button-ButtonBase-9n-Xk BlobViewHeader-module__downloadButton__ef459 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-labelledby="_R_eaucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-download" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2.75 14A1.75 1.75 0 0 1 1 12.25v-2.5a.75.75 0 0 1 1.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-2.5a.75.75 0 0 1 1.5 0v2.5A1.75 1.75 0 0 1 13.25 14Z"></path><path d="M7.25 7.689V2a.75.75 0 0 1 1.5 0v5.689l1.97-1.969a.749.749 0 1 1 1.06 1.06l-3.25 3.25a.749.749 0 0 1-1.06 0L4.22 6.78a.749.749 0 1 1 1.06-1.06l1.97 1.969Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_eaucpala9lik5_">Download raw file</span></div></div></div><div class="d-none"></div><button data-component="IconButton" type="button" aria-pressed="false" aria-expanded="false" aria-controls="symbols-pane" data-testid="symbols-button" class="prc-Button-ButtonBase-9n-Xk BlobViewHeader-module__IconButton_2__RyjZg prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_jecpala9lik5_" id="symbols-button"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code-square" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_jecpala9lik5_">Open symbols panel</span><div class="react-blob-header-edit-and-raw-actions-combined"><button data-component="IconButton" type="button" title="More file actions" data-testid="more-file-actions-button" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click BlobViewHeader-module__IconButton__XrMQY prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_fkecpala9lik5_" id="_R_kecpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_fkecpala9lik5_">Edit and raw actions</span></div></div></div></div><div></div></div><div class="BlobViewContent-module__blobContentWrapper__JS0W6"><section aria-labelledby="file-name-id-wide file-name-id-mobile" class="BlobContent-module__blobContentSection__VOgZq" style="margin-top:46px"><!--$--><div class="CodeBlob-module__codeBlobWrapper__RS6In" style="padding-top:8px;padding-bottom:8px"><div id="highlighted-line-menu-positioner" class="position-relative"><div id="copilot-button-positioner" class="position-relative"><div class="CodeBlob-module__codeBlobInner__tfjuQ"><div class="react-code-file-contents CodeLinesSSR-module__codeFileContents__ARmAN" role="presentation" aria-hidden="true" data-tab-size="4" data-paste-markdown-skip="true" style="tab-size:4;max-width:unset" data-hpc="true" containertiming="hpc"><div class="react-line-numbers" style="pointer-events:auto"><div data-line-number="1" class="react-line-number react-code-text" style="padding-right:16px">1</div><div data-line-number="2" class="react-line-number react-code-text" style="padding-right:16px">2</div><div data-line-number="3" class="react-line-number react-code-text" style="padding-right:16px">3</div><div data-line-number="4" class="react-line-number react-code-text" style="padding-right:16px">4</div><div data-line-number="5" class="react-line-number react-code-text" style="padding-right:16px">5</div><div data-line-number="6" class="react-line-number react-code-text" style="padding-right:16px">6</div><div data-line-number="7" class="react-line-number react-code-text" style="padding-right:16px">7</div><div data-line-number="8" class="react-line-number react-code-text" style="padding-right:16px">8</div><div data-line-number="9" class="react-line-number react-code-text" style="padding-right:16px">9</div><div data-line-number="10" class="react-line-number react-code-text" style="padding-right:16px">10</div><div data-line-number="11" class="react-line-number react-code-text" style="padding-right:16px">11</div><div data-line-number="12" class="react-line-number react-code-text" style="padding-right:16px">12</div><div data-line-number="13" class="react-line-number react-code-text" style="padding-right:16px">13</div><div data-line-number="14" class="react-line-number react-code-text" style="padding-right:16px">14</div><div data-line-number="15" class="react-line-number react-code-text" style="padding-right:16px">15</div><div data-line-number="16" class="react-line-number react-code-text" style="padding-right:16px">16</div><div data-line-number="17" class="react-line-number react-code-text" style="padding-right:16px">17</div><div data-line-number="18" class="react-line-number react-code-text" style="padding-right:16px">18</div><div data-line-number="19" class="react-line-number react-code-text" style="padding-right:16px">19</div><div data-line-number="20" class="react-line-number react-code-text" style="padding-right:16px">20</div><div data-line-number="21" class="react-line-number react-code-text" style="padding-right:16px">21</div><div data-line-number="22" class="react-line-number react-code-text" style="padding-right:16px">22</div><div data-line-number="23" class="react-line-number react-code-text" style="padding-right:16px">23</div><div data-line-number="24" class="react-line-number react-code-text" style="padding-right:16px">24</div><div data-line-number="25" class="react-line-number react-code-text" style="padding-right:16px">25</div><div data-line-number="26" class="react-line-number react-code-text" style="padding-right:16px">26</div><div data-line-number="27" class="react-line-number react-code-text" style="padding-right:16px">27</div><div data-line-number="28" class="react-line-number react-code-text" style="padding-right:16px">28</div><div data-line-number="29" class="react-line-number react-code-text" style="padding-right:16px">29</div><div data-line-number="30" class="react-line-number react-code-text" style="padding-right:16px">30</div><div data-line-number="31" class="react-line-number react-code-text" style="padding-right:16px">31</div><div data-line-number="32" class="react-line-number react-code-text" style="padding-right:16px">32</div><div data-line-number="33" class="react-line-number react-code-text" style="padding-right:16px">33</div><div data-line-number="34" class="react-line-number react-code-text" style="padding-right:16px">34</div><div data-line-number="35" class="react-line-number react-code-text" style="padding-right:16px">35</div><div data-line-number="36" class="react-line-number react-code-text" style="padding-right:16px">36</div><div data-line-number="37" class="react-line-number react-code-text" style="padding-right:16px">37</div><div data-line-number="38" class="react-line-number react-code-text" style="padding-right:16px">38</div><div data-line-number="39" class="react-line-number react-code-text" style="padding-right:16px">39</div><div data-line-number="40" class="react-line-number react-code-text" style="padding-right:16px">40</div><div data-line-number="41" class="react-line-number react-code-text" style="padding-right:16px">41</div><div data-line-number="42" class="react-line-number react-code-text" style="padding-right:16px">42</div><div data-line-number="43" class="react-line-number react-code-text" style="padding-right:16px">43</div><div data-line-number="44" class="react-line-number react-code-text" style="padding-right:16px">44</div><div data-line-number="45" class="react-line-number react-code-text" style="padding-right:16px">45</div><div data-line-number="46" class="react-line-number react-code-text" style="padding-right:16px">46</div><div data-line-number="47" class="react-line-number react-code-text" style="padding-right:16px">47</div><div data-line-number="48" class="react-line-number react-code-text" style="padding-right:16px">48</div><div data-line-number="49" class="react-line-number react-code-text" style="padding-right:16px">49</div><div data-line-number="50" class="react-line-number react-code-text" style="padding-right:16px">50</div><div data-line-number="51" class="react-line-number react-code-text" style="padding-right:16px">51</div><div data-line-number="52" class="react-line-number react-code-text" style="padding-right:16px">52</div><div data-line-number="53" class="react-line-number react-code-text" style="padding-right:16px">53</div><div data-line-number="54" class="react-line-number react-code-text" style="padding-right:16px">54</div><div data-line-number="55" class="react-line-number react-code-text" style="padding-right:16px">55</div><div data-line-number="56" class="react-line-number react-code-text" style="padding-right:16px">56</div><div data-line-number="57" class="react-line-number react-code-text" style="padding-right:16px">57</div><div data-line-number="58" class="react-line-number react-code-text" style="padding-right:16px">58</div><div data-line-number="59" class="react-line-number react-code-text" style="padding-right:16px">59</div><div data-line-number="60" class="react-line-number react-code-text" style="padding-right:16px">60</div><div data-line-number="61" class="react-line-number react-code-text" style="padding-right:16px">61</div><div data-line-number="62" class="react-line-number react-code-text" style="padding-right:16px">62</div><div data-line-number="63" class="react-line-number react-code-text" style="padding-right:16px">63</div><div data-line-number="64" class="react-line-number react-code-text" style="padding-right:16px">64</div><div data-line-number="65" class="react-line-number react-code-text" style="padding-right:16px">65</div><div data-line-number="66" class="react-line-number react-code-text" style="padding-right:16px">66</div><div data-line-number="67" class="react-line-number react-code-text" style="padding-right:16px">67</div><div data-line-number="68" class="react-line-number react-code-text" style="padding-right:16px">68</div><div data-line-number="69" class="react-line-number react-code-text" style="padding-right:16px">69</div><div data-line-number="70" class="react-line-number react-code-text" style="padding-right:16px">70</div><div data-line-number="71" class="react-line-number react-code-text" style="padding-right:16px">71</div><div data-line-number="72" class="react-line-number react-code-text" style="padding-right:16px">72</div><div data-line-number="73" class="react-line-number react-code-text" style="padding-right:16px">73</div><div data-line-number="74" class="react-line-number react-code-text" style="padding-right:16px">74</div><div data-line-number="75" class="react-line-number react-code-text" style="padding-right:16px">75</div><div data-line-number="76" class="react-line-number react-code-text" style="padding-right:16px">76</div><div data-line-number="77" class="react-line-number react-code-text" style="padding-right:16px">77<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="78" class="child-of-line-76  react-line-number react-code-text" style="padding-right:16px">78</div><div data-line-number="79" class="child-of-line-76  react-line-number react-code-text" style="padding-right:16px">79</div><div data-line-number="80" class="child-of-line-76  react-line-number react-code-text" style="padding-right:16px">80</div><div data-line-number="81" class="child-of-line-76  react-line-number react-code-text" style="padding-right:16px">81</div><div data-line-number="82" class="react-line-number react-code-text" style="padding-right:16px">82</div><div data-line-number="83" class="react-line-number react-code-text" style="padding-right:16px">83</div><div data-line-number="84" class="react-line-number react-code-text" style="padding-right:16px">84</div><div data-line-number="85" class="react-line-number react-code-text" style="padding-right:16px">85</div><div data-line-number="86" class="react-line-number react-code-text" style="padding-right:16px">86</div><div data-line-number="87" class="react-line-number react-code-text" style="padding-right:16px">87</div><div data-line-number="88" class="react-line-number react-code-text" style="padding-right:16px">88</div><div data-line-number="89" class="react-line-number react-code-text" style="padding-right:16px">89</div><div data-line-number="90" class="react-line-number react-code-text" style="padding-right:16px">90</div><div data-line-number="91" class="react-line-number react-code-text" style="padding-right:16px">91</div><div data-line-number="92" class="react-line-number react-code-text" style="padding-right:16px">92</div><div data-line-number="93" class="react-line-number react-code-text" style="padding-right:16px">93</div><div data-line-number="94" class="react-line-number react-code-text" style="padding-right:16px">94</div><div data-line-number="95" class="react-line-number react-code-text" style="padding-right:16px">95</div><div data-line-number="96" class="react-line-number react-code-text" style="padding-right:16px">96</div><div data-line-number="97" class="react-line-number react-code-text" style="padding-right:16px">97</div><div data-line-number="98" class="react-line-number react-code-text" style="padding-right:16px">98</div><div data-line-number="99" class="react-line-number react-code-text" style="padding-right:16px">99</div><div data-line-number="100" class="react-line-number react-code-text" style="padding-right:16px">100</div><div data-line-number="101" class="react-line-number react-code-text" style="padding-right:16px">101</div><div data-line-number="102" class="react-line-number react-code-text" style="padding-right:16px">102</div><div data-line-number="103" class="react-line-number react-code-text" style="padding-right:16px">103</div><div data-line-number="104" class="react-line-number react-code-text" style="padding-right:16px">104</div><div data-line-number="105" class="react-line-number react-code-text" style="padding-right:16px">105<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="106" class="child-of-line-104  react-line-number react-code-text" style="padding-right:16px">106</div><div data-line-number="107" class="child-of-line-104  react-line-number react-code-text" style="padding-right:16px">107</div><div data-line-number="108" class="child-of-line-104  react-line-number react-code-text" style="padding-right:16px">108</div><div data-line-number="109" class="child-of-line-104  react-line-number react-code-text" style="padding-right:16px">109</div><div data-line-number="110" class="child-of-line-104  react-line-number react-code-text" style="padding-right:16px">110</div><div data-line-number="111" class="react-line-number react-code-text" style="padding-right:16px">111</div><div data-line-number="112" class="react-line-number react-code-text" style="padding-right:16px">112</div><div data-line-number="113" class="react-line-number react-code-text" style="padding-right:16px">113<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="114" class="child-of-line-112  react-line-number react-code-text" style="padding-right:16px">114</div><div data-line-number="115" class="child-of-line-112  react-line-number react-code-text" style="padding-right:16px">115</div><div data-line-number="116" class="child-of-line-112  react-line-number react-code-text" style="padding-right:16px">116</div><div data-line-number="117" class="child-of-line-112  react-line-number react-code-text" style="padding-right:16px">117</div><div data-line-number="118" class="child-of-line-112  react-line-number react-code-text" style="padding-right:16px">118</div><div data-line-number="119" class="child-of-line-112  react-line-number react-code-text" style="padding-right:16px">119</div><div data-line-number="120" class="child-of-line-112  react-line-number react-code-text" style="padding-right:16px">120</div><div data-line-number="121" class="child-of-line-112  react-line-number react-code-text" style="padding-right:16px">121</div><div data-line-number="122" class="child-of-line-112  react-line-number react-code-text" style="padding-right:16px">122</div><div data-line-number="123" class="child-of-line-112  react-line-number react-code-text" style="padding-right:16px">123</div><div data-line-number="124" class="child-of-line-112  react-line-number react-code-text" style="padding-right:16px">124</div><div data-line-number="125" class="react-line-number react-code-text" style="padding-right:16px">125</div><div data-line-number="126" class="react-line-number react-code-text" style="padding-right:16px">126</div><div data-line-number="127" class="react-line-number react-code-text" style="padding-right:16px">127<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="128" class="child-of-line-126  react-line-number react-code-text" style="padding-right:16px">128</div><div data-line-number="129" class="child-of-line-126  react-line-number react-code-text" style="padding-right:16px">129</div><div data-line-number="130" class="child-of-line-126  react-line-number react-code-text" style="padding-right:16px">130</div><div data-line-number="131" class="child-of-line-126  react-line-number react-code-text" style="padding-right:16px">131</div><div data-line-number="132" class="child-of-line-126  react-line-number react-code-text" style="padding-right:16px">132</div><div data-line-number="133" class="child-of-line-126  react-line-number react-code-text" style="padding-right:16px">133</div><div data-line-number="134" class="child-of-line-126  react-line-number react-code-text" style="padding-right:16px">134</div><div data-line-number="135" class="child-of-line-126  react-line-number react-code-text" style="padding-right:16px">135</div><div data-line-number="136" class="child-of-line-126  react-line-number react-code-text" style="padding-right:16px">136</div><div data-line-number="137" class="child-of-line-126  react-line-number react-code-text" style="padding-right:16px">137</div><div data-line-number="138" class="child-of-line-126  react-line-number react-code-text" style="padding-right:16px">138</div><div data-line-number="139" class="react-line-number react-code-text" style="padding-right:16px">139</div><div data-line-number="140" class="react-line-number react-code-text" style="padding-right:16px">140</div><div data-line-number="141" class="react-line-number react-code-text" style="padding-right:16px">141</div><div data-line-number="142" class="react-line-number react-code-text" style="padding-right:16px">142</div><div data-line-number="143" class="react-line-number react-code-text" style="padding-right:16px">143</div><div data-line-number="144" class="react-line-number react-code-text" style="padding-right:16px">144</div><div data-line-number="145" class="react-line-number react-code-text" style="padding-right:16px">145</div><div data-line-number="146" class="react-line-number react-code-text" style="padding-right:16px">146</div><div data-line-number="147" class="react-line-number react-code-text" style="padding-right:16px">147</div><div data-line-number="148" class="react-line-number react-code-text" style="padding-right:16px">148</div><div data-line-number="149" class="react-line-number react-code-text" style="padding-right:16px">149</div><div data-line-number="150" class="react-line-number react-code-text" style="padding-right:16px">150</div><div data-line-number="151" class="react-line-number react-code-text" style="padding-right:16px">151<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="152" class="child-of-line-150  react-line-number react-code-text" style="padding-right:16px">152</div><div data-line-number="153" class="child-of-line-150  react-line-number react-code-text" style="padding-right:16px">153</div><div data-line-number="154" class="child-of-line-150  react-line-number react-code-text" style="padding-right:16px">154</div><div data-line-number="155" class="child-of-line-150  react-line-number react-code-text" style="padding-right:16px">155</div><div data-line-number="156" class="child-of-line-150  react-line-number react-code-text" style="padding-right:16px">156</div><div data-line-number="157" class="child-of-line-150  react-line-number react-code-text" style="padding-right:16px">157</div><div data-line-number="158" class="child-of-line-150  react-line-number react-code-text" style="padding-right:16px">158</div><div data-line-number="159" class="react-line-number react-code-text" style="padding-right:16px">159</div><div data-line-number="160" class="react-line-number react-code-text" style="padding-right:16px">160</div><div data-line-number="161" class="react-line-number react-code-text" style="padding-right:16px">161<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="162" class="child-of-line-160  react-line-number react-code-text" style="padding-right:16px">162</div><div data-line-number="163" class="child-of-line-160  react-line-number react-code-text" style="padding-right:16px">163</div><div data-line-number="164" class="child-of-line-160  react-line-number react-code-text" style="padding-right:16px">164</div><div data-line-number="165" class="child-of-line-160  react-line-number react-code-text" style="padding-right:16px">165</div><div data-line-number="166" class="react-line-number react-code-text" style="padding-right:16px">166</div><div data-line-number="167" class="react-line-number react-code-text" style="padding-right:16px">167</div><div data-line-number="168" class="react-line-number react-code-text" style="padding-right:16px">168<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="169" class="child-of-line-167  react-line-number react-code-text" style="padding-right:16px">169</div><div data-line-number="170" class="child-of-line-167  react-line-number react-code-text" style="padding-right:16px">170</div><div data-line-number="171" class="child-of-line-167  react-line-number react-code-text" style="padding-right:16px">171</div><div data-line-number="172" class="child-of-line-167  react-line-number react-code-text" style="padding-right:16px">172</div><div data-line-number="173" class="react-line-number react-code-text" style="padding-right:16px">173</div><div data-line-number="174" class="react-line-number react-code-text" style="padding-right:16px">174</div><div data-line-number="175" class="react-line-number react-code-text" style="padding-right:16px">175</div><div data-line-number="176" class="react-line-number react-code-text" style="padding-right:16px">176</div><div data-line-number="177" class="react-line-number react-code-text" style="padding-right:16px">177</div><div data-line-number="178" class="react-line-number react-code-text" style="padding-right:16px">178</div><div data-line-number="179" class="react-line-number react-code-text" style="padding-right:16px">179</div><div data-line-number="180" class="react-line-number react-code-text" style="padding-right:16px">180</div><div data-line-number="181" class="react-line-number react-code-text" style="padding-right:16px">181</div><div data-line-number="182" class="react-line-number react-code-text" style="padding-right:16px">182</div><div data-line-number="183" class="react-line-number react-code-text" style="padding-right:16px">183</div><div data-line-number="184" class="react-line-number react-code-text" style="padding-right:16px">184</div><div data-line-number="185" class="react-line-number react-code-text" style="padding-right:16px">185</div><div data-line-number="186" class="react-line-number react-code-text" style="padding-right:16px">186</div><div data-line-number="187" class="react-line-number react-code-text" style="padding-right:16px">187</div><div data-line-number="188" class="react-line-number react-code-text" style="padding-right:16px">188</div><div data-line-number="189" class="react-line-number react-code-text" style="padding-right:16px">189</div><div data-line-number="190" class="react-line-number react-code-text" style="padding-right:16px">190</div><div data-line-number="191" class="react-line-number react-code-text" style="padding-right:16px">191</div><div data-line-number="192" class="react-line-number react-code-text" style="padding-right:16px">192</div><div data-line-number="193" class="react-line-number react-code-text" style="padding-right:16px">193</div><div data-line-number="194" class="react-line-number react-code-text" style="padding-right:16px">194</div><div data-line-number="195" class="react-line-number react-code-text" style="padding-right:16px">195</div><div data-line-number="196" class="react-line-number react-code-text" style="padding-right:16px">196</div><div data-line-number="197" class="react-line-number react-code-text" style="padding-right:16px">197</div><div data-line-number="198" class="react-line-number react-code-text" style="padding-right:16px">198</div><div data-line-number="199" class="react-line-number react-code-text" style="padding-right:16px">199</div><div data-line-number="200" class="react-line-number react-code-text" style="padding-right:16px">200</div><div data-line-number="201" class="react-line-number react-code-text" style="padding-right:16px">201</div><div data-line-number="202" class="react-line-number react-code-text" style="padding-right:16px">202</div><div data-line-number="203" class="react-line-number react-code-text" style="padding-right:16px">203</div><div data-line-number="204" class="react-line-number react-code-text" style="padding-right:16px">204</div><div data-line-number="205" class="react-line-number react-code-text" style="padding-right:16px">205</div><div data-line-number="206" class="react-line-number react-code-text" style="padding-right:16px">206</div><div data-line-number="207" class="react-line-number react-code-text" style="padding-right:16px">207</div><div data-line-number="208" class="react-line-number react-code-text" style="padding-right:16px">208</div><div data-line-number="209" class="react-line-number react-code-text" style="padding-right:16px">209</div><div data-line-number="210" class="react-line-number react-code-text" style="padding-right:16px">210</div><div data-line-number="211" class="react-line-number react-code-text" style="padding-right:16px">211</div><div data-line-number="212" class="react-line-number react-code-text" style="padding-right:16px">212</div><div data-line-number="213" class="react-line-number react-code-text" style="padding-right:16px">213</div><div data-line-number="214" class="react-line-number react-code-text" style="padding-right:16px">214</div><div data-line-number="215" class="react-line-number react-code-text" style="padding-right:16px">215</div><div data-line-number="216" class="react-line-number react-code-text" style="padding-right:16px">216</div><div data-line-number="217" class="react-line-number react-code-text" style="padding-right:16px">217</div><div data-line-number="218" class="react-line-number react-code-text" style="padding-right:16px">218</div><div data-line-number="219" class="react-line-number react-code-text" style="padding-right:16px">219</div><div data-line-number="220" class="react-line-number react-code-text" style="padding-right:16px">220</div><div data-line-number="221" class="react-line-number react-code-text" style="padding-right:16px">221</div><div data-line-number="222" class="react-line-number react-code-text" style="padding-right:16px">222</div><div data-line-number="223" class="react-line-number react-code-text" style="padding-right:16px">223</div><div data-line-number="224" class="react-line-number react-code-text" style="padding-right:16px">224</div><div data-line-number="225" class="react-line-number react-code-text" style="padding-right:16px">225</div><div data-line-number="226" class="react-line-number react-code-text" style="padding-right:16px">226</div><div data-line-number="227" class="react-line-number react-code-text" style="padding-right:16px">227</div><div data-line-number="228" class="react-line-number react-code-text" style="padding-right:16px">228</div><div data-line-number="229" class="react-line-number react-code-text" style="padding-right:16px">229</div><div data-line-number="230" class="react-line-number react-code-text" style="padding-right:16px">230</div><div data-line-number="231" class="react-line-number react-code-text" style="padding-right:16px">231</div><div data-line-number="232" class="react-line-number react-code-text" style="padding-right:16px">232</div><div data-line-number="233" class="react-line-number react-code-text" style="padding-right:16px">233</div><div data-line-number="234" class="react-line-number react-code-text" style="padding-right:16px">234</div><div data-line-number="235" class="react-line-number react-code-text" style="padding-right:16px">235</div><div data-line-number="236" class="react-line-number react-code-text" style="padding-right:16px">236</div><div data-line-number="237" class="react-line-number react-code-text" style="padding-right:16px">237</div><div data-line-number="238" class="react-line-number react-code-text" style="padding-right:16px">238</div><div data-line-number="239" class="react-line-number react-code-text" style="padding-right:16px">239</div><div data-line-number="240" class="react-line-number react-code-text" style="padding-right:16px">240</div><div data-line-number="241" class="react-line-number react-code-text" style="padding-right:16px">241</div><div data-line-number="242" class="react-line-number react-code-text" style="padding-right:16px">242</div><div data-line-number="243" class="react-line-number react-code-text" style="padding-right:16px">243</div><div data-line-number="244" class="react-line-number react-code-text" style="padding-right:16px">244</div><div data-line-number="245" class="react-line-number react-code-text" style="padding-right:16px">245<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="246" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">246</div><div data-line-number="247" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">247</div><div data-line-number="248" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">248</div><div data-line-number="249" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">249</div><div data-line-number="250" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">250</div><div data-line-number="251" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">251</div><div data-line-number="252" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">252</div><div data-line-number="253" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">253</div><div data-line-number="254" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">254</div><div data-line-number="255" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">255</div><div data-line-number="256" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">256</div><div data-line-number="257" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">257</div><div data-line-number="258" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">258</div><div data-line-number="259" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">259</div><div data-line-number="260" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">260</div><div data-line-number="261" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">261</div><div data-line-number="262" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">262</div><div data-line-number="263" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">263</div><div data-line-number="264" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">264</div><div data-line-number="265" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">265</div><div data-line-number="266" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">266</div><div data-line-number="267" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">267</div><div data-line-number="268" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">268</div><div data-line-number="269" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">269</div><div data-line-number="270" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">270</div><div data-line-number="271" class="child-of-line-244  react-line-number react-code-text" style="padding-right:16px">271</div><div data-line-number="272" class="react-line-number react-code-text" style="padding-right:16px">272</div><div data-line-number="273" class="react-line-number react-code-text" style="padding-right:16px">273</div><div data-line-number="274" class="react-line-number react-code-text" style="padding-right:16px">274<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="275" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">275</div><div data-line-number="276" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">276</div><div data-line-number="277" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">277</div><div data-line-number="278" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">278</div><div data-line-number="279" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">279</div><div data-line-number="280" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">280</div><div data-line-number="281" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">281</div><div data-line-number="282" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">282</div><div data-line-number="283" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">283</div><div data-line-number="284" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">284</div><div data-line-number="285" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">285</div><div data-line-number="286" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">286</div><div data-line-number="287" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">287</div><div data-line-number="288" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">288</div><div data-line-number="289" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">289</div><div data-line-number="290" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">290</div><div data-line-number="291" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">291</div><div data-line-number="292" class="child-of-line-273  react-line-number react-code-text" style="padding-right:16px">292</div><div data-line-number="293" class="react-line-number react-code-text" style="padding-right:16px">293</div><div data-line-number="294" class="react-line-number react-code-text" style="padding-right:16px">294</div><div data-line-number="295" class="react-line-number react-code-text" style="padding-right:16px">295<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="296" class="child-of-line-294  react-line-number react-code-text" style="padding-right:16px">296</div><div data-line-number="297" class="child-of-line-294  react-line-number react-code-text" style="padding-right:16px">297</div><div data-line-number="298" class="child-of-line-294  react-line-number react-code-text" style="padding-right:16px">298</div><div data-line-number="299" class="child-of-line-294  react-line-number react-code-text" style="padding-right:16px">299</div><div data-line-number="300" class="react-line-number react-code-text" style="padding-right:16px">300</div><div data-line-number="301" class="react-line-number react-code-text" style="padding-right:16px">301</div><div data-line-number="302" class="react-line-number react-code-text" style="padding-right:16px">302</div><div data-line-number="303" class="react-line-number react-code-text" style="padding-right:16px">303<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="304" class="child-of-line-302  react-line-number react-code-text" style="padding-right:16px">304</div><div data-line-number="305" class="child-of-line-302  react-line-number react-code-text" style="padding-right:16px">305</div><div data-line-number="306" class="child-of-line-302  react-line-number react-code-text" style="padding-right:16px">306</div><div data-line-number="307" class="child-of-line-302  react-line-number react-code-text" style="padding-right:16px">307</div><div data-line-number="308" class="react-line-number react-code-text" style="padding-right:16px">308</div><div data-line-number="309" class="react-line-number react-code-text" style="padding-right:16px">309</div><div data-line-number="310" class="react-line-number react-code-text" style="padding-right:16px">310</div><div data-line-number="311" class="react-line-number react-code-text" style="padding-right:16px">311</div><div data-line-number="312" class="react-line-number react-code-text" style="padding-right:16px">312</div><div data-line-number="313" class="react-line-number react-code-text" style="padding-right:16px">313</div><div data-line-number="314" class="react-line-number react-code-text" style="padding-right:16px">314</div><div data-line-number="315" class="react-line-number react-code-text" style="padding-right:16px">315</div><div data-line-number="316" class="react-line-number react-code-text" style="padding-right:16px">316<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="317" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">317</div><div data-line-number="318" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">318</div><div data-line-number="319" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">319</div><div data-line-number="320" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">320</div><div data-line-number="321" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">321</div><div data-line-number="322" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">322</div><div data-line-number="323" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">323</div><div data-line-number="324" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">324</div><div data-line-number="325" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">325</div><div data-line-number="326" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">326</div><div data-line-number="327" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">327</div><div data-line-number="328" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">328</div><div data-line-number="329" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">329</div><div data-line-number="330" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">330</div><div data-line-number="331" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">331</div><div data-line-number="332" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">332</div><div data-line-number="333" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">333</div><div data-line-number="334" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">334</div><div data-line-number="335" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">335</div><div data-line-number="336" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">336</div><div data-line-number="337" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">337</div><div data-line-number="338" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">338</div><div data-line-number="339" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">339</div><div data-line-number="340" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">340</div><div data-line-number="341" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">341</div><div data-line-number="342" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">342</div><div data-line-number="343" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">343</div><div data-line-number="344" class="child-of-line-315  react-line-number react-code-text" style="padding-right:16px">344</div><div data-line-number="345" class="react-line-number react-code-text" style="padding-right:16px">345</div><div data-line-number="346" class="react-line-number react-code-text" style="padding-right:16px">346</div><div data-line-number="347" class="react-line-number react-code-text" style="padding-right:16px">347</div><div data-line-number="348" class="react-line-number react-code-text" style="padding-right:16px">348</div><div data-line-number="349" class="react-line-number react-code-text" style="padding-right:16px">349</div><div data-line-number="350" class="react-line-number react-code-text" style="padding-right:16px">350</div><div data-line-number="351" class="react-line-number react-code-text" style="padding-right:16px">351</div><div data-line-number="352" class="react-line-number react-code-text" style="padding-right:16px">352<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="353" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">353</div><div data-line-number="354" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">354</div><div data-line-number="355" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">355<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="356" class="child-of-line-351 child-of-line-354  react-line-number react-code-text" style="padding-right:16px">356</div><div data-line-number="357" class="child-of-line-351 child-of-line-354  react-line-number react-code-text" style="padding-right:16px">357</div><div data-line-number="358" class="child-of-line-351 child-of-line-354  react-line-number react-code-text" style="padding-right:16px">358</div><div data-line-number="359" class="child-of-line-351 child-of-line-354  react-line-number react-code-text" style="padding-right:16px">359</div><div data-line-number="360" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">360</div><div data-line-number="361" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">361</div><div data-line-number="362" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">362</div><div data-line-number="363" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">363</div><div data-line-number="364" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">364</div><div data-line-number="365" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">365</div><div data-line-number="366" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">366</div><div data-line-number="367" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">367</div><div data-line-number="368" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">368</div><div data-line-number="369" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">369</div><div data-line-number="370" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">370</div><div data-line-number="371" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">371</div><div data-line-number="372" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">372</div><div data-line-number="373" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">373</div><div data-line-number="374" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">374</div><div data-line-number="375" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">375</div><div data-line-number="376" class="child-of-line-351  react-line-number react-code-text" style="padding-right:16px">376</div><div data-line-number="377" class="react-line-number react-code-text" style="padding-right:16px">377</div><div data-line-number="378" class="react-line-number react-code-text" style="padding-right:16px">378</div><div data-line-number="379" class="react-line-number react-code-text" style="padding-right:16px">379<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="380" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">380</div><div data-line-number="381" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">381</div><div data-line-number="382" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">382<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="383" class="child-of-line-378 child-of-line-381  react-line-number react-code-text" style="padding-right:16px">383</div><div data-line-number="384" class="child-of-line-378 child-of-line-381  react-line-number react-code-text" style="padding-right:16px">384</div><div data-line-number="385" class="child-of-line-378 child-of-line-381  react-line-number react-code-text" style="padding-right:16px">385</div><div data-line-number="386" class="child-of-line-378 child-of-line-381  react-line-number react-code-text" style="padding-right:16px">386</div><div data-line-number="387" class="child-of-line-378 child-of-line-381  react-line-number react-code-text" style="padding-right:16px">387</div><div data-line-number="388" class="child-of-line-378 child-of-line-381  react-line-number react-code-text" style="padding-right:16px">388</div><div data-line-number="389" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">389</div><div data-line-number="390" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">390</div><div data-line-number="391" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">391</div><div data-line-number="392" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">392</div><div data-line-number="393" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">393</div><div data-line-number="394" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">394</div><div data-line-number="395" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">395</div><div data-line-number="396" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">396</div><div data-line-number="397" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">397</div><div data-line-number="398" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">398</div><div data-line-number="399" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">399</div><div data-line-number="400" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">400</div><div data-line-number="401" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">401</div><div data-line-number="402" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">402</div><div data-line-number="403" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">403</div><div data-line-number="404" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">404</div><div data-line-number="405" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">405</div><div data-line-number="406" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">406</div><div data-line-number="407" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">407</div><div data-line-number="408" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">408</div><div data-line-number="409" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">409</div><div data-line-number="410" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">410</div><div data-line-number="411" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">411</div><div data-line-number="412" class="child-of-line-378  react-line-number react-code-text" style="padding-right:16px">412</div><div data-line-number="413" class="react-line-number react-code-text" style="padding-right:16px">413</div><div data-line-number="414" class="react-line-number react-code-text" style="padding-right:16px">414</div><div data-line-number="415" class="react-line-number react-code-text" style="padding-right:16px">415<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="416" class="child-of-line-414  react-line-number react-code-text" style="padding-right:16px">416</div><div data-line-number="417" class="child-of-line-414  react-line-number react-code-text" style="padding-right:16px">417</div><div data-line-number="418" class="child-of-line-414  react-line-number react-code-text" style="padding-right:16px">418<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="419" class="child-of-line-414 child-of-line-417  react-line-number react-code-text" style="padding-right:16px">419</div><div data-line-number="420" class="child-of-line-414 child-of-line-417  react-line-number react-code-text" style="padding-right:16px">420<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="421" class="child-of-line-414 child-of-line-417 child-of-line-419  react-line-number react-code-text" style="padding-right:16px">421<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="422" class="child-of-line-414 child-of-line-417 child-of-line-419 child-of-line-420  react-line-number react-code-text" style="padding-right:16px">422</div><div data-line-number="423" class="child-of-line-414 child-of-line-417 child-of-line-419 child-of-line-420  react-line-number react-code-text" style="padding-right:16px">423</div><div data-line-number="424" class="child-of-line-414 child-of-line-417 child-of-line-419 child-of-line-420  react-line-number react-code-text" style="padding-right:16px">424</div><div data-line-number="425" class="child-of-line-414 child-of-line-417 child-of-line-419 child-of-line-420  react-line-number react-code-text" style="padding-right:16px">425</div><div data-line-number="426" class="child-of-line-414 child-of-line-417 child-of-line-419 child-of-line-420  react-line-number react-code-text" style="padding-right:16px">426</div><div data-line-number="427" class="child-of-line-414  react-line-number react-code-text" style="padding-right:16px">427</div><div data-line-number="428" class="react-line-number react-code-text" style="padding-right:16px">428</div><div data-line-number="429" class="react-line-number react-code-text" style="padding-right:16px">429</div><div data-line-number="430" class="react-line-number react-code-text" style="padding-right:16px">430</div><div data-line-number="431" class="react-line-number react-code-text" style="padding-right:16px">431</div><div data-line-number="432" class="react-line-number react-code-text" style="padding-right:16px">432</div><div data-line-number="433" class="react-line-number react-code-text" style="padding-right:16px">433</div><div data-line-number="434" class="react-line-number react-code-text" style="padding-right:16px">434</div><div data-line-number="435" class="react-line-number react-code-text" style="padding-right:16px">435</div><div data-line-number="436" class="react-line-number react-code-text" style="padding-right:16px">436</div><div data-line-number="437" class="react-line-number react-code-text" style="padding-right:16px">437</div><div data-line-number="438" class="react-line-number react-code-text" style="padding-right:16px">438</div><div data-line-number="439" class="react-line-number react-code-text" style="padding-right:16px">439</div><div data-line-number="440" class="react-line-number react-code-text" style="padding-right:16px">440</div><div data-line-number="441" class="react-line-number react-code-text" style="padding-right:16px">441</div><div data-line-number="442" class="react-line-number react-code-text" style="padding-right:16px">442</div><div data-line-number="443" class="react-line-number react-code-text" style="padding-right:16px">443</div><div data-line-number="444" class="react-line-number react-code-text" style="padding-right:16px">444</div><div data-line-number="445" class="react-line-number react-code-text" style="padding-right:16px">445</div><div data-line-number="446" class="react-line-number react-code-text" style="padding-right:16px">446</div><div data-line-number="447" class="react-line-number react-code-text" style="padding-right:16px">447</div><div data-line-number="448" class="react-line-number react-code-text" style="padding-right:16px">448</div><div data-line-number="449" class="react-line-number react-code-text" style="padding-right:16px">449</div><div data-line-number="450" class="react-line-number react-code-text" style="padding-right:16px">450</div><div data-line-number="451" class="react-line-number react-code-text" style="padding-right:16px">451</div><div data-line-number="452" class="react-line-number react-code-text" style="padding-right:16px">452</div><div data-line-number="453" class="react-line-number react-code-text" style="padding-right:16px">453</div><div data-line-number="454" class="react-line-number react-code-text" style="padding-right:16px">454</div><div data-line-number="455" class="react-line-number react-code-text" style="padding-right:16px">455</div><div data-line-number="456" class="react-line-number react-code-text" style="padding-right:16px">456</div><div data-line-number="457" class="react-line-number react-code-text" style="padding-right:16px">457</div><div data-line-number="458" class="react-line-number react-code-text" style="padding-right:16px">458</div><div data-line-number="459" class="react-line-number react-code-text" style="padding-right:16px">459</div><div data-line-number="460" class="react-line-number react-code-text" style="padding-right:16px">460</div><div data-line-number="461" class="react-line-number react-code-text" style="padding-right:16px">461</div><div data-line-number="462" class="react-line-number react-code-text" style="padding-right:16px">462</div><div data-line-number="463" class="react-line-number react-code-text" style="padding-right:16px">463</div><div data-line-number="464" class="react-line-number react-code-text" style="padding-right:16px">464</div><div data-line-number="465" class="react-line-number react-code-text" style="padding-right:16px">465</div><div data-line-number="466" class="react-line-number react-code-text" style="padding-right:16px">466</div><div data-line-number="467" class="react-line-number react-code-text" style="padding-right:16px">467</div><div data-line-number="468" class="react-line-number react-code-text" style="padding-right:16px">468</div><div data-line-number="469" class="react-line-number react-code-text" style="padding-right:16px">469</div><div data-line-number="470" class="react-line-number react-code-text" style="padding-right:16px">470</div><div data-line-number="471" class="react-line-number react-code-text" style="padding-right:16px">471</div><div data-line-number="472" class="react-line-number react-code-text" style="padding-right:16px">472</div><div data-line-number="473" class="react-line-number react-code-text" style="padding-right:16px">473</div><div data-line-number="474" class="react-line-number react-code-text" style="padding-right:16px">474</div><div data-line-number="475" class="react-line-number react-code-text" style="padding-right:16px">475</div><div data-line-number="476" class="react-line-number react-code-text" style="padding-right:16px">476</div><div data-line-number="477" class="react-line-number react-code-text" style="padding-right:16px">477</div><div data-line-number="478" class="react-line-number react-code-text" style="padding-right:16px">478</div><div data-line-number="479" class="react-line-number react-code-text" style="padding-right:16px">479</div><div data-line-number="480" class="react-line-number react-code-text" style="padding-right:16px">480</div><div data-line-number="481" class="react-line-number react-code-text" style="padding-right:16px">481</div><div data-line-number="482" class="react-line-number react-code-text" style="padding-right:16px">482</div><div data-line-number="483" class="react-line-number react-code-text" style="padding-right:16px">483</div><div data-line-number="484" class="react-line-number react-code-text" style="padding-right:16px">484</div><div data-line-number="485" class="react-line-number react-code-text" style="padding-right:16px">485</div><div data-line-number="486" class="react-line-number react-code-text" style="padding-right:16px">486</div><div data-line-number="487" class="react-line-number react-code-text" style="padding-right:16px">487</div><div data-line-number="488" class="react-line-number react-code-text" style="padding-right:16px">488</div><div data-line-number="489" class="react-line-number react-code-text" style="padding-right:16px">489</div><div data-line-number="490" class="react-line-number react-code-text" style="padding-right:16px">490</div><div data-line-number="491" class="react-line-number react-code-text" style="padding-right:16px">491</div><div data-line-number="492" class="react-line-number react-code-text" style="padding-right:16px">492</div><div data-line-number="493" class="react-line-number react-code-text" style="padding-right:16px">493</div><div data-line-number="494" class="react-line-number react-code-text" style="padding-right:16px">494</div><div data-line-number="495" class="react-line-number react-code-text" style="padding-right:16px">495</div><div data-line-number="496" class="react-line-number react-code-text" style="padding-right:16px">496</div><div data-line-number="497" class="react-line-number react-code-text" style="padding-right:16px">497</div><div data-line-number="498" class="react-line-number react-code-text" style="padding-right:16px">498</div><div data-line-number="499" class="react-line-number react-code-text" style="padding-right:16px">499</div><div data-line-number="500" class="react-line-number react-code-text" style="padding-right:16px">500</div><div data-line-number="501" class="react-line-number react-code-text" style="padding-right:16px">501</div><div data-line-number="502" class="react-line-number react-code-text" style="padding-right:16px">502</div><div data-line-number="503" class="react-line-number react-code-text" style="padding-right:16px">503</div><div data-line-number="504" class="react-line-number react-code-text" style="padding-right:16px">504</div><div data-line-number="505" class="react-line-number react-code-text" style="padding-right:16px">505</div><div data-line-number="506" class="react-line-number react-code-text" style="padding-right:16px">506</div><div data-line-number="507" class="react-line-number react-code-text" style="padding-right:16px">507</div><div data-line-number="508" class="react-line-number react-code-text" style="padding-right:16px">508</div><div data-line-number="509" class="react-line-number react-code-text" style="padding-right:16px">509</div><div data-line-number="510" class="react-line-number react-code-text" style="padding-right:16px">510</div><div data-line-number="511" class="react-line-number react-code-text" style="padding-right:16px">511</div><div data-line-number="512" class="react-line-number react-code-text" style="padding-right:16px">512</div><div data-line-number="513" class="react-line-number react-code-text" style="padding-right:16px">513</div><div data-line-number="514" class="react-line-number react-code-text" style="padding-right:16px">514</div><div data-line-number="515" class="react-line-number react-code-text" style="padding-right:16px">515</div><div data-line-number="516" class="react-line-number react-code-text" style="padding-right:16px">516</div><div data-line-number="517" class="react-line-number react-code-text" style="padding-right:16px">517</div><div data-line-number="518" class="react-line-number react-code-text" style="padding-right:16px">518</div><div data-line-number="519" class="react-line-number react-code-text" style="padding-right:16px">519</div><div data-line-number="520" class="react-line-number react-code-text" style="padding-right:16px">520</div><div data-line-number="521" class="react-line-number react-code-text" style="padding-right:16px">521</div><div data-line-number="522" class="react-line-number react-code-text" style="padding-right:16px">522</div><div data-line-number="523" class="react-line-number react-code-text" style="padding-right:16px">523</div><div data-line-number="524" class="react-line-number react-code-text" style="padding-right:16px">524</div><div data-line-number="525" class="react-line-number react-code-text" style="padding-right:16px">525</div><div data-line-number="526" class="react-line-number react-code-text" style="padding-right:16px">526</div><div data-line-number="527" class="react-line-number react-code-text" style="padding-right:16px">527</div><div data-line-number="528" class="react-line-number react-code-text" style="padding-right:16px">528</div><div data-line-number="529" class="react-line-number react-code-text" style="padding-right:16px">529</div><div data-line-number="530" class="react-line-number react-code-text" style="padding-right:16px">530</div><div data-line-number="531" class="react-line-number react-code-text" style="padding-right:16px">531</div><div data-line-number="532" class="react-line-number react-code-text" style="padding-right:16px">532</div><div data-line-number="533" class="react-line-number react-code-text" style="padding-right:16px">533</div><div data-line-number="534" class="react-line-number react-code-text" style="padding-right:16px">534</div><div data-line-number="535" class="react-line-number react-code-text" style="padding-right:16px">535</div><div data-line-number="536" class="react-line-number react-code-text" style="padding-right:16px">536</div><div data-line-number="537" class="react-line-number react-code-text" style="padding-right:16px">537</div><div data-line-number="538" class="react-line-number react-code-text" style="padding-right:16px">538</div><div data-line-number="539" class="react-line-number react-code-text" style="padding-right:16px">539</div><div data-line-number="540" class="react-line-number react-code-text" style="padding-right:16px">540</div><div data-line-number="541" class="react-line-number react-code-text" style="padding-right:16px">541</div><div data-line-number="542" class="react-line-number react-code-text" style="padding-right:16px">542</div><div data-line-number="543" class="react-line-number react-code-text" style="padding-right:16px">543</div><div data-line-number="544" class="react-line-number react-code-text" style="padding-right:16px">544</div><div data-line-number="545" class="react-line-number react-code-text" style="padding-right:16px">545</div><div data-line-number="546" class="react-line-number react-code-text" style="padding-right:16px">546</div><div data-line-number="547" class="react-line-number react-code-text" style="padding-right:16px">547</div><div data-line-number="548" class="react-line-number react-code-text" style="padding-right:16px">548</div><div data-line-number="549" class="react-line-number react-code-text" style="padding-right:16px">549</div><div data-line-number="550" class="react-line-number react-code-text" style="padding-right:16px">550</div><div data-line-number="551" class="react-line-number react-code-text" style="padding-right:16px">551</div><div data-line-number="552" class="react-line-number react-code-text" style="padding-right:16px">552</div><div data-line-number="553" class="react-line-number react-code-text" style="padding-right:16px">553</div><div data-line-number="554" class="react-line-number react-code-text" style="padding-right:16px">554</div><div data-line-number="555" class="react-line-number react-code-text" style="padding-right:16px">555</div><div data-line-number="556" class="react-line-number react-code-text" style="padding-right:16px">556</div><div data-line-number="557" class="react-line-number react-code-text" style="padding-right:16px">557</div><div data-line-number="558" class="react-line-number react-code-text" style="padding-right:16px">558</div><div data-line-number="559" class="react-line-number react-code-text" style="padding-right:16px">559</div><div data-line-number="560" class="react-line-number react-code-text" style="padding-right:16px">560</div><div data-line-number="561" class="react-line-number react-code-text" style="padding-right:16px">561</div><div data-line-number="562" class="react-line-number react-code-text" style="padding-right:16px">562</div><div data-line-number="563" class="react-line-number react-code-text" style="padding-right:16px">563</div><div data-line-number="564" class="react-line-number react-code-text" style="padding-right:16px">564</div><div data-line-number="565" class="react-line-number react-code-text" style="padding-right:16px">565</div><div data-line-number="566" class="react-line-number react-code-text" style="padding-right:16px">566</div><div data-line-number="567" class="react-line-number react-code-text" style="padding-right:16px">567</div><div data-line-number="568" class="react-line-number react-code-text" style="padding-right:16px">568</div><div data-line-number="569" class="react-line-number react-code-text" style="padding-right:16px">569</div><div data-line-number="570" class="react-line-number react-code-text" style="padding-right:16px">570</div><div data-line-number="571" class="react-line-number react-code-text" style="padding-right:16px">571</div><div data-line-number="572" class="react-line-number react-code-text" style="padding-right:16px">572</div><div data-line-number="573" class="react-line-number react-code-text" style="padding-right:16px">573</div><div data-line-number="574" class="react-line-number react-code-text" style="padding-right:16px">574</div><div data-line-number="575" class="react-line-number react-code-text" style="padding-right:16px">575</div><div data-line-number="576" class="react-line-number react-code-text" style="padding-right:16px">576</div><div data-line-number="577" class="react-line-number react-code-text" style="padding-right:16px">577</div><div data-line-number="578" class="react-line-number react-code-text" style="padding-right:16px">578</div><div data-line-number="579" class="react-line-number react-code-text" style="padding-right:16px">579</div><div data-line-number="580" class="react-line-number react-code-text" style="padding-right:16px">580</div><div data-line-number="581" class="react-line-number react-code-text" style="padding-right:16px">581</div><div data-line-number="582" class="react-line-number react-code-text" style="padding-right:16px">582</div><div data-line-number="583" class="react-line-number react-code-text" style="padding-right:16px">583</div><div data-line-number="584" class="react-line-number react-code-text" style="padding-right:16px">584</div><div data-line-number="585" class="react-line-number react-code-text" style="padding-right:16px">585</div><div data-line-number="586" class="react-line-number react-code-text" style="padding-right:16px">586</div><div data-line-number="587" class="react-line-number react-code-text" style="padding-right:16px">587</div><div data-line-number="588" class="react-line-number react-code-text" style="padding-right:16px">588</div><div data-line-number="589" class="react-line-number react-code-text" style="padding-right:16px">589</div><div data-line-number="590" class="react-line-number react-code-text" style="padding-right:16px">590</div><div data-line-number="591" class="react-line-number react-code-text" style="padding-right:16px">591</div><div data-line-number="592" class="react-line-number react-code-text" style="padding-right:16px">592</div><div data-line-number="593" class="react-line-number react-code-text" style="padding-right:16px">593</div><div data-line-number="594" class="react-line-number react-code-text" style="padding-right:16px">594</div><div data-line-number="595" class="react-line-number react-code-text" style="padding-right:16px">595</div><div data-line-number="596" class="react-line-number react-code-text" style="padding-right:16px">596</div><div data-line-number="597" class="react-line-number react-code-text" style="padding-right:16px">597</div><div data-line-number="598" class="react-line-number react-code-text" style="padding-right:16px">598</div><div data-line-number="599" class="react-line-number react-code-text" style="padding-right:16px">599</div><div data-line-number="600" class="react-line-number react-code-text" style="padding-right:16px">600</div><div data-line-number="601" class="react-line-number react-code-text" style="padding-right:16px">601</div><div data-line-number="602" class="react-line-number react-code-text" style="padding-right:16px">602</div><div data-line-number="603" class="react-line-number react-code-text" style="padding-right:16px">603</div><div data-line-number="604" class="react-line-number react-code-text" style="padding-right:16px">604</div><div data-line-number="605" class="react-line-number react-code-text" style="padding-right:16px">605</div><div data-line-number="606" class="react-line-number react-code-text" style="padding-right:16px">606</div><div data-line-number="607" class="react-line-number react-code-text" style="padding-right:16px">607</div><div data-line-number="608" class="react-line-number react-code-text" style="padding-right:16px">608</div><div data-line-number="609" class="react-line-number react-code-text" style="padding-right:16px">609</div><div data-line-number="610" class="react-line-number react-code-text" style="padding-right:16px">610<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="611" class="child-of-line-609  react-line-number react-code-text" style="padding-right:16px">611</div><div data-line-number="612" class="child-of-line-609  react-line-number react-code-text" style="padding-right:16px">612</div><div data-line-number="613" class="child-of-line-609  react-line-number react-code-text" style="padding-right:16px">613</div><div data-line-number="614" class="child-of-line-609  react-line-number react-code-text" style="padding-right:16px">614</div><div data-line-number="615" class="child-of-line-609  react-line-number react-code-text" style="padding-right:16px">615</div><div data-line-number="616" class="child-of-line-609  react-line-number react-code-text" style="padding-right:16px">616</div><div data-line-number="617" class="child-of-line-609  react-line-number react-code-text" style="padding-right:16px">617</div><div data-line-number="618" class="child-of-line-609  react-line-number react-code-text" style="padding-right:16px">618</div><div data-line-number="619" class="child-of-line-609  react-line-number react-code-text" style="padding-right:16px">619</div><div data-line-number="620" class="child-of-line-609  react-line-number react-code-text" style="padding-right:16px">620</div><div data-line-number="621" class="child-of-line-609  react-line-number react-code-text" style="padding-right:16px">621</div><div data-line-number="622" class="react-line-number react-code-text" style="padding-right:16px">622</div><div data-line-number="623" class="react-line-number react-code-text" style="padding-right:16px">623</div><div data-line-number="624" class="react-line-number react-code-text" style="padding-right:16px">624<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="625" class="child-of-line-623  react-line-number react-code-text" style="padding-right:16px">625</div><div data-line-number="626" class="child-of-line-623  react-line-number react-code-text" style="padding-right:16px">626</div><div data-line-number="627" class="child-of-line-623  react-line-number react-code-text" style="padding-right:16px">627</div><div data-line-number="628" class="child-of-line-623  react-line-number react-code-text" style="padding-right:16px">628</div><div data-line-number="629" class="child-of-line-623  react-line-number react-code-text" style="padding-right:16px">629</div><div data-line-number="630" class="child-of-line-623  react-line-number react-code-text" style="padding-right:16px">630</div><div data-line-number="631" class="child-of-line-623  react-line-number react-code-text" style="padding-right:16px">631</div><div data-line-number="632" class="child-of-line-623  react-line-number react-code-text" style="padding-right:16px">632</div><div data-line-number="633" class="react-line-number react-code-text" style="padding-right:16px">633</div><div data-line-number="634" class="react-line-number react-code-text" style="padding-right:16px">634</div><div data-line-number="635" class="react-line-number react-code-text" style="padding-right:16px">635<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="636" class="child-of-line-634  react-line-number react-code-text" style="padding-right:16px">636</div><div data-line-number="637" class="child-of-line-634  react-line-number react-code-text" style="padding-right:16px">637</div><div data-line-number="638" class="child-of-line-634  react-line-number react-code-text" style="padding-right:16px">638</div><div data-line-number="639" class="react-line-number react-code-text" style="padding-right:16px">639</div><div data-line-number="640" class="react-line-number react-code-text" style="padding-right:16px">640</div><div data-line-number="641" class="react-line-number react-code-text" style="padding-right:16px">641</div><div data-line-number="642" class="react-line-number react-code-text" style="padding-right:16px">642</div><div data-line-number="643" class="react-line-number react-code-text" style="padding-right:16px">643</div><div data-line-number="644" class="react-line-number react-code-text" style="padding-right:16px">644</div><div data-line-number="645" class="react-line-number react-code-text" style="padding-right:16px">645</div><div data-line-number="646" class="react-line-number react-code-text" style="padding-right:16px">646</div><div data-line-number="647" class="react-line-number react-code-text" style="padding-right:16px">647</div><div data-line-number="648" class="react-line-number react-code-text" style="padding-right:16px">648</div><div data-line-number="649" class="react-line-number react-code-text" style="padding-right:16px">649</div><div data-line-number="650" class="react-line-number react-code-text" style="padding-right:16px">650</div><div data-line-number="651" class="react-line-number react-code-text" style="padding-right:16px">651</div><div data-line-number="652" class="react-line-number react-code-text" style="padding-right:16px">652</div><div data-line-number="653" class="react-line-number react-code-text" style="padding-right:16px">653</div><div data-line-number="654" class="react-line-number react-code-text" style="padding-right:16px">654</div><div data-line-number="655" class="react-line-number react-code-text" style="padding-right:16px">655</div><div data-line-number="656" class="react-line-number react-code-text" style="padding-right:16px">656</div><div data-line-number="657" class="react-line-number react-code-text" style="padding-right:16px">657</div><div data-line-number="658" class="react-line-number react-code-text" style="padding-right:16px">658</div><div data-line-number="659" class="react-line-number react-code-text" style="padding-right:16px">659</div><div data-line-number="660" class="react-line-number react-code-text" style="padding-right:16px">660</div><div data-line-number="661" class="react-line-number react-code-text" style="padding-right:16px">661</div><div data-line-number="662" class="react-line-number react-code-text" style="padding-right:16px">662</div><div data-line-number="663" class="react-line-number react-code-text" style="padding-right:16px">663</div><div data-line-number="664" class="react-line-number react-code-text" style="padding-right:16px">664</div><div data-line-number="665" class="react-line-number react-code-text" style="padding-right:16px">665</div><div data-line-number="666" class="react-line-number react-code-text" style="padding-right:16px">666</div><div data-line-number="667" class="react-line-number react-code-text" style="padding-right:16px">667</div><div data-line-number="668" class="react-line-number react-code-text" style="padding-right:16px">668</div><div data-line-number="669" class="react-line-number react-code-text" style="padding-right:16px">669</div><div data-line-number="670" class="react-line-number react-code-text" style="padding-right:16px">670</div><div data-line-number="671" class="react-line-number react-code-text" style="padding-right:16px">671</div><div data-line-number="672" class="react-line-number react-code-text" style="padding-right:16px">672</div><div data-line-number="673" class="react-line-number react-code-text" style="padding-right:16px">673</div><div data-line-number="674" class="react-line-number react-code-text" style="padding-right:16px">674</div><div data-line-number="675" class="react-line-number react-code-text" style="padding-right:16px">675</div><div data-line-number="676" class="react-line-number react-code-text" style="padding-right:16px">676</div><div data-line-number="677" class="react-line-number react-code-text" style="padding-right:16px">677</div><div data-line-number="678" class="react-line-number react-code-text" style="padding-right:16px">678</div><div data-line-number="679" class="react-line-number react-code-text" style="padding-right:16px">679</div><div data-line-number="680" class="react-line-number react-code-text" style="padding-right:16px">680</div><div data-line-number="681" class="react-line-number react-code-text" style="padding-right:16px">681</div><div data-line-number="682" class="react-line-number react-code-text" style="padding-right:16px">682</div><div data-line-number="683" class="react-line-number react-code-text" style="padding-right:16px">683</div><div data-line-number="684" class="react-line-number react-code-text" style="padding-right:16px">684</div><div data-line-number="685" class="react-line-number react-code-text" style="padding-right:16px">685</div><div data-line-number="686" class="react-line-number react-code-text" style="padding-right:16px">686</div><div data-line-number="687" class="react-line-number react-code-text" style="padding-right:16px">687</div><div data-line-number="688" class="react-line-number react-code-text" style="padding-right:16px">688</div><div data-line-number="689" class="react-line-number react-code-text" style="padding-right:16px">689</div><div data-line-number="690" class="react-line-number react-code-text" style="padding-right:16px">690</div><div data-line-number="691" class="react-line-number react-code-text" style="padding-right:16px">691</div><div data-line-number="692" class="react-line-number react-code-text" style="padding-right:16px">692</div><div data-line-number="693" class="react-line-number react-code-text" style="padding-right:16px">693</div><div data-line-number="694" class="react-line-number react-code-text" style="padding-right:16px">694</div><div data-line-number="695" class="react-line-number react-code-text" style="padding-right:16px">695</div><div data-line-number="696" class="react-line-number react-code-text" style="padding-right:16px">696</div><div data-line-number="697" class="react-line-number react-code-text" style="padding-right:16px">697</div><div data-line-number="698" class="react-line-number react-code-text" style="padding-right:16px">698</div><div data-line-number="699" class="react-line-number react-code-text" style="padding-right:16px">699</div><div data-line-number="700" class="react-line-number react-code-text" style="padding-right:16px">700</div><div data-line-number="701" class="react-line-number react-code-text" style="padding-right:16px">701</div><div data-line-number="702" class="react-line-number react-code-text" style="padding-right:16px">702</div><div data-line-number="703" class="react-line-number react-code-text" style="padding-right:16px">703</div><div data-line-number="704" class="react-line-number react-code-text" style="padding-right:16px">704</div><div data-line-number="705" class="react-line-number react-code-text" style="padding-right:16px">705</div><div data-line-number="706" class="react-line-number react-code-text" style="padding-right:16px">706</div><div data-line-number="707" class="react-line-number react-code-text" style="padding-right:16px">707</div><div data-line-number="708" class="react-line-number react-code-text" style="padding-right:16px">708</div><div data-line-number="709" class="react-line-number react-code-text" style="padding-right:16px">709</div><div data-line-number="710" class="react-line-number react-code-text" style="padding-right:16px">710</div><div data-line-number="711" class="react-line-number react-code-text" style="padding-right:16px">711</div><div data-line-number="712" class="react-line-number react-code-text" style="padding-right:16px">712</div><div data-line-number="713" class="react-line-number react-code-text" style="padding-right:16px">713</div><div data-line-number="714" class="react-line-number react-code-text" style="padding-right:16px">714</div><div data-line-number="715" class="react-line-number react-code-text" style="padding-right:16px">715</div><div data-line-number="716" class="react-line-number react-code-text" style="padding-right:16px">716</div><div data-line-number="717" class="react-line-number react-code-text" style="padding-right:16px">717</div><div data-line-number="718" class="react-line-number react-code-text" style="padding-right:16px">718</div><div data-line-number="719" class="react-line-number react-code-text" style="padding-right:16px">719</div><div data-line-number="720" class="react-line-number react-code-text" style="padding-right:16px">720</div><div data-line-number="721" class="react-line-number react-code-text" style="padding-right:16px">721</div><div data-line-number="722" class="react-line-number react-code-text" style="padding-right:16px">722</div><div data-line-number="723" class="react-line-number react-code-text" style="padding-right:16px">723</div><div data-line-number="724" class="react-line-number react-code-text" style="padding-right:16px">724</div><div data-line-number="725" class="react-line-number react-code-text" style="padding-right:16px">725</div><div data-line-number="726" class="react-line-number react-code-text" style="padding-right:16px">726</div><div data-line-number="727" class="react-line-number react-code-text" style="padding-right:16px">727</div><div data-line-number="728" class="react-line-number react-code-text" style="padding-right:16px">728</div><div data-line-number="729" class="react-line-number react-code-text" style="padding-right:16px">729</div><div data-line-number="730" class="react-line-number react-code-text" style="padding-right:16px">730</div><div data-line-number="731" class="react-line-number react-code-text" style="padding-right:16px">731</div><div data-line-number="732" class="react-line-number react-code-text" style="padding-right:16px">732</div><div data-line-number="733" class="react-line-number react-code-text" style="padding-right:16px">733</div><div data-line-number="734" class="react-line-number react-code-text" style="padding-right:16px">734</div><div data-line-number="735" class="react-line-number react-code-text" style="padding-right:16px">735</div><div data-line-number="736" class="react-line-number react-code-text" style="padding-right:16px">736</div><div data-line-number="737" class="react-line-number react-code-text" style="padding-right:16px">737</div><div data-line-number="738" class="react-line-number react-code-text" style="padding-right:16px">738</div><div data-line-number="739" class="react-line-number react-code-text" style="padding-right:16px">739</div><div data-line-number="740" class="react-line-number react-code-text" style="padding-right:16px">740</div><div data-line-number="741" class="react-line-number react-code-text" style="padding-right:16px">741</div><div data-line-number="742" class="react-line-number react-code-text" style="padding-right:16px">742</div><div data-line-number="743" class="react-line-number react-code-text" style="padding-right:16px">743</div><div data-line-number="744" class="react-line-number react-code-text" style="padding-right:16px">744</div><div data-line-number="745" class="react-line-number react-code-text" style="padding-right:16px">745</div><div data-line-number="746" class="react-line-number react-code-text" style="padding-right:16px">746</div><div data-line-number="747" class="react-line-number react-code-text" style="padding-right:16px">747</div><div data-line-number="748" class="react-line-number react-code-text" style="padding-right:16px">748</div><div data-line-number="749" class="react-line-number react-code-text" style="padding-right:16px">749</div><div data-line-number="750" class="react-line-number react-code-text" style="padding-right:16px">750</div><div data-line-number="751" class="react-line-number react-code-text" style="padding-right:16px">751</div><div data-line-number="752" class="react-line-number react-code-text" style="padding-right:16px">752</div><div data-line-number="753" class="react-line-number react-code-text" style="padding-right:16px">753</div><div data-line-number="754" class="react-line-number react-code-text" style="padding-right:16px">754</div><div data-line-number="755" class="react-line-number react-code-text" style="padding-right:16px">755</div><div data-line-number="756" class="react-line-number react-code-text" style="padding-right:16px">756</div><div data-line-number="757" class="react-line-number react-code-text" style="padding-right:16px">757</div><div data-line-number="758" class="react-line-number react-code-text" style="padding-right:16px">758</div><div data-line-number="759" class="react-line-number react-code-text" style="padding-right:16px">759</div><div data-line-number="760" class="react-line-number react-code-text" style="padding-right:16px">760</div><div data-line-number="761" class="react-line-number react-code-text" style="padding-right:16px">761</div><div data-line-number="762" class="react-line-number react-code-text" style="padding-right:16px">762</div><div data-line-number="763" class="react-line-number react-code-text" style="padding-right:16px">763</div><div data-line-number="764" class="react-line-number react-code-text" style="padding-right:16px">764</div><div data-line-number="765" class="react-line-number react-code-text" style="padding-right:16px">765</div><div data-line-number="766" class="react-line-number react-code-text" style="padding-right:16px">766</div><div data-line-number="767" class="react-line-number react-code-text" style="padding-right:16px">767</div><div data-line-number="768" class="react-line-number react-code-text" style="padding-right:16px">768</div><div data-line-number="769" class="react-line-number react-code-text" style="padding-right:16px">769</div><div data-line-number="770" class="react-line-number react-code-text" style="padding-right:16px">770</div><div data-line-number="771" class="react-line-number react-code-text" style="padding-right:16px">771</div><div data-line-number="772" class="react-line-number react-code-text" style="padding-right:16px">772</div><div data-line-number="773" class="react-line-number react-code-text" style="padding-right:16px">773</div><div data-line-number="774" class="react-line-number react-code-text" style="padding-right:16px">774</div><div data-line-number="775" class="react-line-number react-code-text" style="padding-right:16px">775</div><div data-line-number="776" class="react-line-number react-code-text" style="padding-right:16px">776</div><div data-line-number="777" class="react-line-number react-code-text" style="padding-right:16px">777</div><div data-line-number="778" class="react-line-number react-code-text" style="padding-right:16px">778</div><div data-line-number="779" class="react-line-number react-code-text" style="padding-right:16px">779</div><div data-line-number="780" class="react-line-number react-code-text" style="padding-right:16px">780</div><div data-line-number="781" class="react-line-number react-code-text" style="padding-right:16px">781</div><div data-line-number="782" class="react-line-number react-code-text" style="padding-right:16px">782</div><div data-line-number="783" class="react-line-number react-code-text" style="padding-right:16px">783</div><div data-line-number="784" class="react-line-number react-code-text" style="padding-right:16px">784</div><div data-line-number="785" class="react-line-number react-code-text" style="padding-right:16px">785</div><div data-line-number="786" class="react-line-number react-code-text" style="padding-right:16px">786</div><div data-line-number="787" class="react-line-number react-code-text" style="padding-right:16px">787</div><div data-line-number="788" class="react-line-number react-code-text" style="padding-right:16px">788</div><div data-line-number="789" class="react-line-number react-code-text" style="padding-right:16px">789</div><div data-line-number="790" class="react-line-number react-code-text" style="padding-right:16px">790</div><div data-line-number="791" class="react-line-number react-code-text" style="padding-right:16px">791</div><div data-line-number="792" class="react-line-number react-code-text" style="padding-right:16px">792</div><div data-line-number="793" class="react-line-number react-code-text" style="padding-right:16px">793</div><div data-line-number="794" class="react-line-number react-code-text" style="padding-right:16px">794</div><div data-line-number="795" class="react-line-number react-code-text" style="padding-right:16px">795</div><div data-line-number="796" class="react-line-number react-code-text" style="padding-right:16px">796</div><div data-line-number="797" class="react-line-number react-code-text" style="padding-right:16px">797</div><div data-line-number="798" class="react-line-number react-code-text" style="padding-right:16px">798</div><div data-line-number="799" class="react-line-number react-code-text" style="padding-right:16px">799</div><div data-line-number="800" class="react-line-number react-code-text" style="padding-right:16px">800</div><div data-line-number="801" class="react-line-number react-code-text" style="padding-right:16px">801</div><div data-line-number="802" class="react-line-number react-code-text" style="padding-right:16px">802</div><div data-line-number="803" class="react-line-number react-code-text" style="padding-right:16px">803</div><div data-line-number="804" class="react-line-number react-code-text" style="padding-right:16px">804</div><div data-line-number="805" class="react-line-number react-code-text" style="padding-right:16px">805</div><div data-line-number="806" class="react-line-number react-code-text" style="padding-right:16px">806</div><div data-line-number="807" class="react-line-number react-code-text" style="padding-right:16px">807</div><div data-line-number="808" class="react-line-number react-code-text" style="padding-right:16px">808</div><div data-line-number="809" class="react-line-number react-code-text" style="padding-right:16px">809</div><div data-line-number="810" class="react-line-number react-code-text" style="padding-right:16px">810</div><div data-line-number="811" class="react-line-number react-code-text" style="padding-right:16px">811</div><div data-line-number="812" class="react-line-number react-code-text" style="padding-right:16px">812</div><div data-line-number="813" class="react-line-number react-code-text" style="padding-right:16px">813</div><div data-line-number="814" class="react-line-number react-code-text" style="padding-right:16px">814</div><div data-line-number="815" class="react-line-number react-code-text" style="padding-right:16px">815</div><div data-line-number="816" class="react-line-number react-code-text" style="padding-right:16px">816</div><div data-line-number="817" class="react-line-number react-code-text" style="padding-right:16px">817</div><div data-line-number="818" class="react-line-number react-code-text" style="padding-right:16px">818</div><div data-line-number="819" class="react-line-number react-code-text" style="padding-right:16px">819</div><div data-line-number="820" class="react-line-number react-code-text" style="padding-right:16px">820</div><div data-line-number="821" class="react-line-number react-code-text" style="padding-right:16px">821</div><div data-line-number="822" class="react-line-number react-code-text" style="padding-right:16px">822</div><div data-line-number="823" class="react-line-number react-code-text" style="padding-right:16px">823</div><div data-line-number="824" class="react-line-number react-code-text" style="padding-right:16px">824</div><div data-line-number="825" class="react-line-number react-code-text" style="padding-right:16px">825</div><div data-line-number="826" class="react-line-number react-code-text" style="padding-right:16px">826</div><div data-line-number="827" class="react-line-number react-code-text" style="padding-right:16px">827</div><div data-line-number="828" class="react-line-number react-code-text" style="padding-right:16px">828</div><div data-line-number="829" class="react-line-number react-code-text" style="padding-right:16px">829</div><div data-line-number="830" class="react-line-number react-code-text" style="padding-right:16px">830</div><div data-line-number="831" class="react-line-number react-code-text" style="padding-right:16px">831</div><div data-line-number="832" class="react-line-number react-code-text" style="padding-right:16px">832</div><div data-line-number="833" class="react-line-number react-code-text" style="padding-right:16px">833</div><div data-line-number="834" class="react-line-number react-code-text" style="padding-right:16px">834</div><div data-line-number="835" class="react-line-number react-code-text" style="padding-right:16px">835</div><div data-line-number="836" class="react-line-number react-code-text" style="padding-right:16px">836</div><div data-line-number="837" class="react-line-number react-code-text" style="padding-right:16px">837</div><div data-line-number="838" class="react-line-number react-code-text" style="padding-right:16px">838</div><div data-line-number="839" class="react-line-number react-code-text" style="padding-right:16px">839</div><div data-line-number="840" class="react-line-number react-code-text" style="padding-right:16px">840</div><div data-line-number="841" class="react-line-number react-code-text" style="padding-right:16px">841</div><div data-line-number="842" class="react-line-number react-code-text" style="padding-right:16px">842</div><div data-line-number="843" class="react-line-number react-code-text" style="padding-right:16px">843</div><div data-line-number="844" class="react-line-number react-code-text" style="padding-right:16px">844</div><div data-line-number="845" class="react-line-number react-code-text" style="padding-right:16px">845</div><div data-line-number="846" class="react-line-number react-code-text" style="padding-right:16px">846</div><div data-line-number="847" class="react-line-number react-code-text" style="padding-right:16px">847</div><div data-line-number="848" class="react-line-number react-code-text" style="padding-right:16px">848</div><div data-line-number="849" class="react-line-number react-code-text" style="padding-right:16px">849</div><div data-line-number="850" class="react-line-number react-code-text" style="padding-right:16px">850</div><div data-line-number="851" class="react-line-number react-code-text" style="padding-right:16px">851</div><div data-line-number="852" class="react-line-number react-code-text" style="padding-right:16px">852</div><div data-line-number="853" class="react-line-number react-code-text" style="padding-right:16px">853</div><div data-line-number="854" class="react-line-number react-code-text" style="padding-right:16px">854</div><div data-line-number="855" class="react-line-number react-code-text" style="padding-right:16px">855</div><div data-line-number="856" class="react-line-number react-code-text" style="padding-right:16px">856</div><div data-line-number="857" class="react-line-number react-code-text" style="padding-right:16px">857</div><div data-line-number="858" class="react-line-number react-code-text" style="padding-right:16px">858</div><div data-line-number="859" class="react-line-number react-code-text" style="padding-right:16px">859</div><div data-line-number="860" class="react-line-number react-code-text" style="padding-right:16px">860</div><div data-line-number="861" class="react-line-number react-code-text" style="padding-right:16px">861</div><div data-line-number="862" class="react-line-number react-code-text" style="padding-right:16px">862</div><div data-line-number="863" class="react-line-number react-code-text" style="padding-right:16px">863</div><div data-line-number="864" class="react-line-number react-code-text" style="padding-right:16px">864</div><div data-line-number="865" class="react-line-number react-code-text" style="padding-right:16px">865</div><div data-line-number="866" class="react-line-number react-code-text" style="padding-right:16px">866</div><div data-line-number="867" class="react-line-number react-code-text" style="padding-right:16px">867</div><div data-line-number="868" class="react-line-number react-code-text" style="padding-right:16px">868</div><div data-line-number="869" class="react-line-number react-code-text" style="padding-right:16px">869</div><div data-line-number="870" class="react-line-number react-code-text" style="padding-right:16px">870</div><div data-line-number="871" class="react-line-number react-code-text" style="padding-right:16px">871</div><div data-line-number="872" class="react-line-number react-code-text" style="padding-right:16px">872</div><div data-line-number="873" class="react-line-number react-code-text" style="padding-right:16px">873</div><div data-line-number="874" class="react-line-number react-code-text" style="padding-right:16px">874</div><div data-line-number="875" class="react-line-number react-code-text" style="padding-right:16px">875</div><div data-line-number="876" class="react-line-number react-code-text" style="padding-right:16px">876</div><div data-line-number="877" class="react-line-number react-code-text" style="padding-right:16px">877</div><div data-line-number="878" class="react-line-number react-code-text" style="padding-right:16px">878</div><div data-line-number="879" class="react-line-number react-code-text" style="padding-right:16px">879</div><div data-line-number="880" class="react-line-number react-code-text" style="padding-right:16px">880</div><div data-line-number="881" class="react-line-number react-code-text" style="padding-right:16px">881</div><div data-line-number="882" class="react-line-number react-code-text" style="padding-right:16px">882</div><div data-line-number="883" class="react-line-number react-code-text" style="padding-right:16px">883</div><div data-line-number="884" class="react-line-number react-code-text" style="padding-right:16px">884</div><div data-line-number="885" class="react-line-number react-code-text" style="padding-right:16px">885</div><div data-line-number="886" class="react-line-number react-code-text" style="padding-right:16px">886</div><div data-line-number="887" class="react-line-number react-code-text" style="padding-right:16px">887</div><div data-line-number="888" class="react-line-number react-code-text" style="padding-right:16px">888</div><div data-line-number="889" class="react-line-number react-code-text" style="padding-right:16px">889</div><div data-line-number="890" class="react-line-number react-code-text" style="padding-right:16px">890</div><div data-line-number="891" class="react-line-number react-code-text" style="padding-right:16px">891</div><div data-line-number="892" class="react-line-number react-code-text" style="padding-right:16px">892</div><div data-line-number="893" class="react-line-number react-code-text" style="padding-right:16px">893</div><div data-line-number="894" class="react-line-number react-code-text" style="padding-right:16px">894</div><div data-line-number="895" class="react-line-number react-code-text" style="padding-right:16px">895</div><div data-line-number="896" class="react-line-number react-code-text" style="padding-right:16px">896</div><div data-line-number="897" class="react-line-number react-code-text" style="padding-right:16px">897</div><div data-line-number="898" class="react-line-number react-code-text" style="padding-right:16px">898</div><div data-line-number="899" class="react-line-number react-code-text" style="padding-right:16px">899</div><div data-line-number="900" class="react-line-number react-code-text" style="padding-right:16px">900</div><div data-line-number="901" class="react-line-number react-code-text" style="padding-right:16px">901</div><div data-line-number="902" class="react-line-number react-code-text" style="padding-right:16px">902</div><div data-line-number="903" class="react-line-number react-code-text" style="padding-right:16px">903</div><div data-line-number="904" class="react-line-number react-code-text" style="padding-right:16px">904</div><div data-line-number="905" class="react-line-number react-code-text" style="padding-right:16px">905</div><div data-line-number="906" class="react-line-number react-code-text" style="padding-right:16px">906</div><div data-line-number="907" class="react-line-number react-code-text" style="padding-right:16px">907</div><div data-line-number="908" class="react-line-number react-code-text" style="padding-right:16px">908</div><div data-line-number="909" class="react-line-number react-code-text" style="padding-right:16px">909</div><div data-line-number="910" class="react-line-number react-code-text" style="padding-right:16px">910</div><div data-line-number="911" class="react-line-number react-code-text" style="padding-right:16px">911</div><div data-line-number="912" class="react-line-number react-code-text" style="padding-right:16px">912</div><div data-line-number="913" class="react-line-number react-code-text" style="padding-right:16px">913</div><div data-line-number="914" class="react-line-number react-code-text" style="padding-right:16px">914</div><div data-line-number="915" class="react-line-number react-code-text" style="padding-right:16px">915</div><div data-line-number="916" class="react-line-number react-code-text" style="padding-right:16px">916</div><div data-line-number="917" class="react-line-number react-code-text" style="padding-right:16px">917</div><div data-line-number="918" class="react-line-number react-code-text" style="padding-right:16px">918</div><div data-line-number="919" class="react-line-number react-code-text" style="padding-right:16px">919</div><div data-line-number="920" class="react-line-number react-code-text" style="padding-right:16px">920</div><div data-line-number="921" class="react-line-number react-code-text" style="padding-right:16px">921</div><div data-line-number="922" class="react-line-number react-code-text" style="padding-right:16px">922</div><div data-line-number="923" class="react-line-number react-code-text" style="padding-right:16px">923</div><div data-line-number="924" class="react-line-number react-code-text" style="padding-right:16px">924</div><div data-line-number="925" class="react-line-number react-code-text" style="padding-right:16px">925</div><div data-line-number="926" class="react-line-number react-code-text" style="padding-right:16px">926</div><div data-line-number="927" class="react-line-number react-code-text" style="padding-right:16px">927</div><div data-line-number="928" class="react-line-number react-code-text" style="padding-right:16px">928</div><div data-line-number="929" class="react-line-number react-code-text" style="padding-right:16px">929</div><div data-line-number="930" class="react-line-number react-code-text" style="padding-right:16px">930</div><div data-line-number="931" class="react-line-number react-code-text" style="padding-right:16px">931</div><div data-line-number="932" class="react-line-number react-code-text" style="padding-right:16px">932</div><div data-line-number="933" class="react-line-number react-code-text" style="padding-right:16px">933</div><div data-line-number="934" class="react-line-number react-code-text" style="padding-right:16px">934</div><div data-line-number="935" class="react-line-number react-code-text" style="padding-right:16px">935</div><div data-line-number="936" class="react-line-number react-code-text" style="padding-right:16px">936</div><div data-line-number="937" class="react-line-number react-code-text" style="padding-right:16px">937</div><div data-line-number="938" class="react-line-number react-code-text" style="padding-right:16px">938</div><div data-line-number="939" class="react-line-number react-code-text" style="padding-right:16px">939</div><div data-line-number="940" class="react-line-number react-code-text" style="padding-right:16px">940</div><div data-line-number="941" class="react-line-number react-code-text" style="padding-right:16px">941</div><div data-line-number="942" class="react-line-number react-code-text" style="padding-right:16px">942</div><div data-line-number="943" class="react-line-number react-code-text" style="padding-right:16px">943</div><div data-line-number="944" class="react-line-number react-code-text" style="padding-right:16px">944</div><div data-line-number="945" class="react-line-number react-code-text" style="padding-right:16px">945</div><div data-line-number="946" class="react-line-number react-code-text" style="padding-right:16px">946</div><div data-line-number="947" class="react-line-number react-code-text" style="padding-right:16px">947</div><div data-line-number="948" class="react-line-number react-code-text" style="padding-right:16px">948</div><div data-line-number="949" class="react-line-number react-code-text" style="padding-right:16px">949</div><div data-line-number="950" class="react-line-number react-code-text" style="padding-right:16px">950</div><div data-line-number="951" class="react-line-number react-code-text" style="padding-right:16px">951</div><div data-line-number="952" class="react-line-number react-code-text" style="padding-right:16px">952</div><div data-line-number="953" class="react-line-number react-code-text" style="padding-right:16px">953</div><div data-line-number="954" class="react-line-number react-code-text" style="padding-right:16px">954</div><div data-line-number="955" class="react-line-number react-code-text" style="padding-right:16px">955</div><div data-line-number="956" class="react-line-number react-code-text" style="padding-right:16px">956</div><div data-line-number="957" class="react-line-number react-code-text" style="padding-right:16px">957</div><div data-line-number="958" class="react-line-number react-code-text" style="padding-right:16px">958</div><div data-line-number="959" class="react-line-number react-code-text" style="padding-right:16px">959</div><div data-line-number="960" class="react-line-number react-code-text" style="padding-right:16px">960</div><div data-line-number="961" class="react-line-number react-code-text" style="padding-right:16px">961</div><div data-line-number="962" class="react-line-number react-code-text" style="padding-right:16px">962</div><div data-line-number="963" class="react-line-number react-code-text" style="padding-right:16px">963</div><div data-line-number="964" class="react-line-number react-code-text" style="padding-right:16px">964</div><div data-line-number="965" class="react-line-number react-code-text" style="padding-right:16px">965<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="966" class="child-of-line-964  react-line-number react-code-text" style="padding-right:16px">966</div><div data-line-number="967" class="child-of-line-964  react-line-number react-code-text" style="padding-right:16px">967</div><div data-line-number="968" class="child-of-line-964  react-line-number react-code-text" style="padding-right:16px">968</div><div data-line-number="969" class="child-of-line-964  react-line-number react-code-text" style="padding-right:16px">969</div><div data-line-number="970" class="child-of-line-964  react-line-number react-code-text" style="padding-right:16px">970</div><div data-line-number="971" class="react-line-number react-code-text" style="padding-right:16px">971</div><div data-line-number="972" class="react-line-number react-code-text" style="padding-right:16px">972</div><div data-line-number="973" class="react-line-number react-code-text" style="padding-right:16px">973</div><div data-line-number="974" class="react-line-number react-code-text" style="padding-right:16px">974</div><div data-line-number="975" class="react-line-number react-code-text" style="padding-right:16px">975</div><div data-line-number="976" class="react-line-number react-code-text" style="padding-right:16px">976</div><div data-line-number="977" class="react-line-number react-code-text" style="padding-right:16px">977</div><div data-line-number="978" class="react-line-number react-code-text" style="padding-right:16px">978</div><div data-line-number="979" class="react-line-number react-code-text" style="padding-right:16px">979</div><div data-line-number="980" class="react-line-number react-code-text" style="padding-right:16px">980</div><div data-line-number="981" class="react-line-number react-code-text" style="padding-right:16px">981</div><div data-line-number="982" class="react-line-number react-code-text" style="padding-right:16px">982</div><div data-line-number="983" class="react-line-number react-code-text" style="padding-right:16px">983</div><div data-line-number="984" class="react-line-number react-code-text" style="padding-right:16px">984</div><div data-line-number="985" class="react-line-number react-code-text" style="padding-right:16px">985</div><div data-line-number="986" class="react-line-number react-code-text" style="padding-right:16px">986</div><div data-line-number="987" class="react-line-number react-code-text" style="padding-right:16px">987</div><div data-line-number="988" class="react-line-number react-code-text" style="padding-right:16px">988</div><div data-line-number="989" class="react-line-number react-code-text" style="padding-right:16px">989</div><div data-line-number="990" class="react-line-number react-code-text" style="padding-right:16px">990</div><div data-line-number="991" class="react-line-number react-code-text" style="padding-right:16px">991</div><div data-line-number="992" class="react-line-number react-code-text" style="padding-right:16px">992</div><div data-line-number="993" class="react-line-number react-code-text" style="padding-right:16px">993</div><div data-line-number="994" class="react-line-number react-code-text" style="padding-right:16px">994</div><div data-line-number="995" class="react-line-number react-code-text" style="padding-right:16px">995</div><div data-line-number="996" class="react-line-number react-code-text" style="padding-right:16px">996</div><div data-line-number="997" class="react-line-number react-code-text" style="padding-right:16px">997</div><div data-line-number="998" class="react-line-number react-code-text" style="padding-right:16px">998</div><div data-line-number="999" class="react-line-number react-code-text" style="padding-right:16px">999</div><div data-line-number="1000" class="react-line-number react-code-text" style="padding-right:16px">1000</div></div><div class="react-code-lines"><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC1" class="react-file-line html-div" data-testid="code-cell" data-line-number="1" style="position:relative"><span class="pl-c"><span class="pl-c">/*</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC2" class="react-file-line html-div" data-testid="code-cell" data-line-number="2" style="position:relative"><span class="pl-c"> * simplecpp - A simple and high-fidelity C/C++ preprocessor library</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC3" class="react-file-line html-div" data-testid="code-cell" data-line-number="3" style="position:relative"><span class="pl-c"> * Copyright (C) 2016-2023 simplecpp team</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC4" class="react-file-line html-div" data-testid="code-cell" data-line-number="4" style="position:relative"><span class="pl-c"> <span class="pl-c">*/</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC5" class="react-file-line html-div" data-testid="code-cell" data-line-number="5" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC6" class="react-file-line html-div" data-testid="code-cell" data-line-number="6" style="position:relative">#<span class="pl-k">if</span> defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC7" class="react-file-line html-div" data-testid="code-cell" data-line-number="7" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">SIMPLECPP_WINDOWS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC8" class="react-file-line html-div" data-testid="code-cell" data-line-number="8" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">NOMINMAX</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC9" class="react-file-line html-div" data-testid="code-cell" data-line-number="9" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC10" class="react-file-line html-div" data-testid="code-cell" data-line-number="10" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC11" class="react-file-line html-div" data-testid="code-cell" data-line-number="11" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&quot;</span>simplecpp.h<span class="pl-pds">&quot;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC12" class="react-file-line html-div" data-testid="code-cell" data-line-number="12" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC13" class="react-file-line html-div" data-testid="code-cell" data-line-number="13" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>algorithm<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC14" class="react-file-line html-div" data-testid="code-cell" data-line-number="14" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>cassert<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC15" class="react-file-line html-div" data-testid="code-cell" data-line-number="15" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>cctype<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC16" class="react-file-line html-div" data-testid="code-cell" data-line-number="16" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>climits<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC17" class="react-file-line html-div" data-testid="code-cell" data-line-number="17" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>cstddef<span class="pl-pds">&gt;</span></span> <span class="pl-c"><span class="pl-c">//</span> IWYU pragma: keep</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC18" class="react-file-line html-div" data-testid="code-cell" data-line-number="18" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>cstdio<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC19" class="react-file-line html-div" data-testid="code-cell" data-line-number="19" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>cstdlib<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC20" class="react-file-line html-div" data-testid="code-cell" data-line-number="20" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>cstring<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC21" class="react-file-line html-div" data-testid="code-cell" data-line-number="21" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>ctime<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC22" class="react-file-line html-div" data-testid="code-cell" data-line-number="22" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>exception<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC23" class="react-file-line html-div" data-testid="code-cell" data-line-number="23" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>fstream<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC24" class="react-file-line html-div" data-testid="code-cell" data-line-number="24" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>iostream<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC25" class="react-file-line html-div" data-testid="code-cell" data-line-number="25" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>istream<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC26" class="react-file-line html-div" data-testid="code-cell" data-line-number="26" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>limits<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC27" class="react-file-line html-div" data-testid="code-cell" data-line-number="27" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>list<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC28" class="react-file-line html-div" data-testid="code-cell" data-line-number="28" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>map<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC29" class="react-file-line html-div" data-testid="code-cell" data-line-number="29" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>set<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC30" class="react-file-line html-div" data-testid="code-cell" data-line-number="30" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>sstream<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC31" class="react-file-line html-div" data-testid="code-cell" data-line-number="31" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>stack<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC32" class="react-file-line html-div" data-testid="code-cell" data-line-number="32" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>stdexcept<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC33" class="react-file-line html-div" data-testid="code-cell" data-line-number="33" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>string<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC34" class="react-file-line html-div" data-testid="code-cell" data-line-number="34" style="position:relative">#<span class="pl-k">if</span> __cplusplus &gt;= 201103L</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC35" class="react-file-line html-div" data-testid="code-cell" data-line-number="35" style="position:relative">#<span class="pl-k">ifdef</span> SIMPLECPP_WINDOWS</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC36" class="react-file-line html-div" data-testid="code-cell" data-line-number="36" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>mutex<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC37" class="react-file-line html-div" data-testid="code-cell" data-line-number="37" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC38" class="react-file-line html-div" data-testid="code-cell" data-line-number="38" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>unordered_map<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC39" class="react-file-line html-div" data-testid="code-cell" data-line-number="39" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC40" class="react-file-line html-div" data-testid="code-cell" data-line-number="40" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>utility<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC41" class="react-file-line html-div" data-testid="code-cell" data-line-number="41" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>vector<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC42" class="react-file-line html-div" data-testid="code-cell" data-line-number="42" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC43" class="react-file-line html-div" data-testid="code-cell" data-line-number="43" style="position:relative">#<span class="pl-k">ifdef</span> SIMPLECPP_WINDOWS</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC44" class="react-file-line html-div" data-testid="code-cell" data-line-number="44" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>windows.h<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC45" class="react-file-line html-div" data-testid="code-cell" data-line-number="45" style="position:relative">#<span class="pl-k">undef</span> ERROR</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC46" class="react-file-line html-div" data-testid="code-cell" data-line-number="46" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC47" class="react-file-line html-div" data-testid="code-cell" data-line-number="47" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC48" class="react-file-line html-div" data-testid="code-cell" data-line-number="48" style="position:relative">#<span class="pl-k">if</span> __cplusplus &gt;= 201103L</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC49" class="react-file-line html-div" data-testid="code-cell" data-line-number="49" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">OVERRIDE</span> <span class="pl-k">override</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC50" class="react-file-line html-div" data-testid="code-cell" data-line-number="50" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">EXPLICIT</span> <span class="pl-k">explicit</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC51" class="react-file-line html-div" data-testid="code-cell" data-line-number="51" style="position:relative">#<span class="pl-k">else</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC52" class="react-file-line html-div" data-testid="code-cell" data-line-number="52" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">OVERRIDE</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC53" class="react-file-line html-div" data-testid="code-cell" data-line-number="53" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">EXPLICIT</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC54" class="react-file-line html-div" data-testid="code-cell" data-line-number="54" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC55" class="react-file-line html-div" data-testid="code-cell" data-line-number="55" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC56" class="react-file-line html-div" data-testid="code-cell" data-line-number="56" style="position:relative">#<span class="pl-k">if</span> (__cplusplus &lt; 201103L) &amp;&amp; !defined(__APPLE__)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC57" class="react-file-line html-div" data-testid="code-cell" data-line-number="57" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">nullptr</span> <span class="pl-c1">NULL</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC58" class="react-file-line html-div" data-testid="code-cell" data-line-number="58" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC59" class="react-file-line html-div" data-testid="code-cell" data-line-number="59" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC60" class="react-file-line html-div" data-testid="code-cell" data-line-number="60" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">bool</span> <span class="pl-en">isHex</span>(<span class="pl-k">const</span> std::string &amp;s)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC61" class="react-file-line html-div" data-testid="code-cell" data-line-number="61" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC62" class="react-file-line html-div" data-testid="code-cell" data-line-number="62" style="position:relative">    <span class="pl-k">return</span> s.<span class="pl-c1">size</span>()&gt;<span class="pl-c1">2</span> &amp;&amp; (s.<span class="pl-c1">compare</span>(<span class="pl-c1">0</span>,<span class="pl-c1">2</span>,<span class="pl-s"><span class="pl-pds">&quot;</span>0x<span class="pl-pds">&quot;</span></span>)==<span class="pl-c1">0</span> || s.<span class="pl-c1">compare</span>(<span class="pl-c1">0</span>,<span class="pl-c1">2</span>,<span class="pl-s"><span class="pl-pds">&quot;</span>0X<span class="pl-pds">&quot;</span></span>)==<span class="pl-c1">0</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC63" class="react-file-line html-div" data-testid="code-cell" data-line-number="63" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC64" class="react-file-line html-div" data-testid="code-cell" data-line-number="64" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC65" class="react-file-line html-div" data-testid="code-cell" data-line-number="65" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">bool</span> <span class="pl-en">isOct</span>(<span class="pl-k">const</span> std::string &amp;s)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC66" class="react-file-line html-div" data-testid="code-cell" data-line-number="66" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC67" class="react-file-line html-div" data-testid="code-cell" data-line-number="67" style="position:relative">    <span class="pl-k">return</span> s.<span class="pl-c1">size</span>()&gt;<span class="pl-c1">1</span> &amp;&amp; (s[<span class="pl-c1">0</span>]==<span class="pl-s"><span class="pl-pds">&#039;</span>0<span class="pl-pds">&#039;</span></span>) &amp;&amp; (s[<span class="pl-c1">1</span>] &gt;= <span class="pl-s"><span class="pl-pds">&#039;</span>0<span class="pl-pds">&#039;</span></span>) &amp;&amp; (s[<span class="pl-c1">1</span>] &lt; <span class="pl-s"><span class="pl-pds">&#039;</span>8<span class="pl-pds">&#039;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC68" class="react-file-line html-div" data-testid="code-cell" data-line-number="68" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC69" class="react-file-line html-div" data-testid="code-cell" data-line-number="69" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC70" class="react-file-line html-div" data-testid="code-cell" data-line-number="70" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> TODO: added an undercore since this conflicts with a function of the same name in utils.h from Cppcheck source when building Cppcheck with MSBuild</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC71" class="react-file-line html-div" data-testid="code-cell" data-line-number="71" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">bool</span> <span class="pl-en">isStringLiteral_</span>(<span class="pl-k">const</span> std::string &amp;s)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC72" class="react-file-line html-div" data-testid="code-cell" data-line-number="72" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC73" class="react-file-line html-div" data-testid="code-cell" data-line-number="73" style="position:relative">    <span class="pl-k">return</span> s.<span class="pl-c1">size</span>() &gt; <span class="pl-c1">1</span> &amp;&amp; (s[<span class="pl-c1">0</span>]==<span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\&quot;</span><span class="pl-pds">&#039;</span></span>) &amp;&amp; (*s.<span class="pl-c1">rbegin</span>()==<span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\&quot;</span><span class="pl-pds">&#039;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC74" class="react-file-line html-div" data-testid="code-cell" data-line-number="74" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC75" class="react-file-line html-div" data-testid="code-cell" data-line-number="75" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC76" class="react-file-line html-div" data-testid="code-cell" data-line-number="76" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> TODO: added an undercore since this conflicts with a function of the same name in utils.h from Cppcheck source when building Cppcheck with MSBuild</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC77" class="react-file-line html-div" data-testid="code-cell" data-line-number="77" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">bool</span> <span class="pl-en">isCharLiteral_</span>(<span class="pl-k">const</span> std::string &amp;s)</div></div></div><div class="child-of-line-76  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC78" class="react-file-line html-div" data-testid="code-cell" data-line-number="78" style="position:relative">{</div></div></div><div class="child-of-line-76  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC79" class="react-file-line html-div" data-testid="code-cell" data-line-number="79" style="position:relative">    <span class="pl-c"><span class="pl-c">//</span> char literal patterns can include &#039;a&#039;, &#039;\t&#039;, &#039;\000&#039;, &#039;\xff&#039;, &#039;abcd&#039;, and maybe &#039;&#039;</span></div></div></div><div class="child-of-line-76  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC80" class="react-file-line html-div" data-testid="code-cell" data-line-number="80" style="position:relative">    <span class="pl-c"><span class="pl-c">//</span> This only checks for the surrounding &#039;&#039; but doesn&#039;t parse the content.</span></div></div></div><div class="child-of-line-76  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC81" class="react-file-line html-div" data-testid="code-cell" data-line-number="81" style="position:relative">    <span class="pl-k">return</span> s.<span class="pl-c1">size</span>() &gt; <span class="pl-c1">1</span> &amp;&amp; (s[<span class="pl-c1">0</span>]==<span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\&#039;</span><span class="pl-pds">&#039;</span></span>) &amp;&amp; (*s.<span class="pl-c1">rbegin</span>()==<span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\&#039;</span><span class="pl-pds">&#039;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC82" class="react-file-line html-div" data-testid="code-cell" data-line-number="82" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC83" class="react-file-line html-div" data-testid="code-cell" data-line-number="83" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC84" class="react-file-line html-div" data-testid="code-cell" data-line-number="84" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">const</span> simplecpp::TokenString <span class="pl-en">DEFINE</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>define<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC85" class="react-file-line html-div" data-testid="code-cell" data-line-number="85" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">const</span> simplecpp::TokenString <span class="pl-en">UNDEF</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>undef<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC86" class="react-file-line html-div" data-testid="code-cell" data-line-number="86" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC87" class="react-file-line html-div" data-testid="code-cell" data-line-number="87" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">const</span> simplecpp::TokenString <span class="pl-en">INCLUDE</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>include<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC88" class="react-file-line html-div" data-testid="code-cell" data-line-number="88" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC89" class="react-file-line html-div" data-testid="code-cell" data-line-number="89" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">const</span> simplecpp::TokenString <span class="pl-en">ERROR</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>error<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC90" class="react-file-line html-div" data-testid="code-cell" data-line-number="90" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">const</span> simplecpp::TokenString <span class="pl-en">WARNING</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>warning<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC91" class="react-file-line html-div" data-testid="code-cell" data-line-number="91" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC92" class="react-file-line html-div" data-testid="code-cell" data-line-number="92" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">const</span> simplecpp::TokenString <span class="pl-en">IF</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>if<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC93" class="react-file-line html-div" data-testid="code-cell" data-line-number="93" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">const</span> simplecpp::TokenString <span class="pl-en">IFDEF</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>ifdef<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC94" class="react-file-line html-div" data-testid="code-cell" data-line-number="94" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">const</span> simplecpp::TokenString <span class="pl-en">IFNDEF</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>ifndef<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC95" class="react-file-line html-div" data-testid="code-cell" data-line-number="95" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">const</span> simplecpp::TokenString <span class="pl-en">DEFINED</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>defined<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC96" class="react-file-line html-div" data-testid="code-cell" data-line-number="96" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">const</span> simplecpp::TokenString <span class="pl-en">ELSE</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>else<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC97" class="react-file-line html-div" data-testid="code-cell" data-line-number="97" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">const</span> simplecpp::TokenString <span class="pl-en">ELIF</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>elif<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC98" class="react-file-line html-div" data-testid="code-cell" data-line-number="98" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">const</span> simplecpp::TokenString <span class="pl-en">ENDIF</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>endif<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC99" class="react-file-line html-div" data-testid="code-cell" data-line-number="99" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC100" class="react-file-line html-div" data-testid="code-cell" data-line-number="100" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">const</span> simplecpp::TokenString <span class="pl-en">PRAGMA</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>pragma<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC101" class="react-file-line html-div" data-testid="code-cell" data-line-number="101" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">const</span> simplecpp::TokenString <span class="pl-en">ONCE</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>once<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC102" class="react-file-line html-div" data-testid="code-cell" data-line-number="102" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC103" class="react-file-line html-div" data-testid="code-cell" data-line-number="103" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">const</span> simplecpp::TokenString <span class="pl-en">HAS_INCLUDE</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>__has_include<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC104" class="react-file-line html-div" data-testid="code-cell" data-line-number="104" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC105" class="react-file-line html-div" data-testid="code-cell" data-line-number="105" style="position:relative"><span class="pl-k">template</span>&lt;<span class="pl-k">class</span> <span class="pl-en">T</span>&gt; <span class="pl-k">static</span> std::string <span class="pl-en">toString</span>(T t)</div></div></div><div class="child-of-line-104  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC106" class="react-file-line html-div" data-testid="code-cell" data-line-number="106" style="position:relative">{</div></div></div><div class="child-of-line-104  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC107" class="react-file-line html-div" data-testid="code-cell" data-line-number="107" style="position:relative">    <span class="pl-c"><span class="pl-c">//</span> NOLINTNEXTLINE(misc-const-correctness) - false positive</span></div></div></div><div class="child-of-line-104  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC108" class="react-file-line html-div" data-testid="code-cell" data-line-number="108" style="position:relative">    std::ostringstream ostr;</div></div></div><div class="child-of-line-104  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC109" class="react-file-line html-div" data-testid="code-cell" data-line-number="109" style="position:relative">    ostr &lt;&lt; t;</div></div></div><div class="child-of-line-104  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC110" class="react-file-line html-div" data-testid="code-cell" data-line-number="110" style="position:relative">    <span class="pl-k">return</span> ostr.<span class="pl-c1">str</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC111" class="react-file-line html-div" data-testid="code-cell" data-line-number="111" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC112" class="react-file-line html-div" data-testid="code-cell" data-line-number="112" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC113" class="react-file-line html-div" data-testid="code-cell" data-line-number="113" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">long</span> <span class="pl-k">long</span> <span class="pl-en">stringToLL</span>(<span class="pl-k">const</span> std::string &amp;s)</div></div></div><div class="child-of-line-112  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC114" class="react-file-line html-div" data-testid="code-cell" data-line-number="114" style="position:relative">{</div></div></div><div class="child-of-line-112  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC115" class="react-file-line html-div" data-testid="code-cell" data-line-number="115" style="position:relative">    <span class="pl-k">long</span> <span class="pl-k">long</span> ret;</div></div></div><div class="child-of-line-112  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC116" class="react-file-line html-div" data-testid="code-cell" data-line-number="116" style="position:relative">    <span class="pl-k">const</span> <span class="pl-k">bool</span> hex = <span class="pl-c1">isHex</span>(s);</div></div></div><div class="child-of-line-112  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC117" class="react-file-line html-div" data-testid="code-cell" data-line-number="117" style="position:relative">    <span class="pl-k">const</span> <span class="pl-k">bool</span> oct = <span class="pl-c1">isOct</span>(s);</div></div></div><div class="child-of-line-112  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC118" class="react-file-line html-div" data-testid="code-cell" data-line-number="118" style="position:relative">    std::istringstream <span class="pl-smi">istr</span>(hex ? s.<span class="pl-c1">substr</span>(<span class="pl-c1">2</span>) : oct ? s.<span class="pl-c1">substr</span>(<span class="pl-c1">1</span>) : s);</div></div></div><div class="child-of-line-112  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC119" class="react-file-line html-div" data-testid="code-cell" data-line-number="119" style="position:relative">    <span class="pl-k">if</span> (hex)</div></div></div><div class="child-of-line-112  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC120" class="react-file-line html-div" data-testid="code-cell" data-line-number="120" style="position:relative">        istr &gt;&gt; std::hex;</div></div></div><div class="child-of-line-112  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC121" class="react-file-line html-div" data-testid="code-cell" data-line-number="121" style="position:relative">    <span class="pl-k">else</span> <span class="pl-k">if</span> (oct)</div></div></div><div class="child-of-line-112  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC122" class="react-file-line html-div" data-testid="code-cell" data-line-number="122" style="position:relative">        istr &gt;&gt; std::oct;</div></div></div><div class="child-of-line-112  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC123" class="react-file-line html-div" data-testid="code-cell" data-line-number="123" style="position:relative">    istr &gt;&gt; ret;</div></div></div><div class="child-of-line-112  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC124" class="react-file-line html-div" data-testid="code-cell" data-line-number="124" style="position:relative">    <span class="pl-k">return</span> ret;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC125" class="react-file-line html-div" data-testid="code-cell" data-line-number="125" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC126" class="react-file-line html-div" data-testid="code-cell" data-line-number="126" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC127" class="react-file-line html-div" data-testid="code-cell" data-line-number="127" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">unsigned</span> <span class="pl-k">long</span> <span class="pl-k">long</span> <span class="pl-en">stringToULL</span>(<span class="pl-k">const</span> std::string &amp;s)</div></div></div><div class="child-of-line-126  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC128" class="react-file-line html-div" data-testid="code-cell" data-line-number="128" style="position:relative">{</div></div></div><div class="child-of-line-126  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC129" class="react-file-line html-div" data-testid="code-cell" data-line-number="129" style="position:relative">    <span class="pl-k">unsigned</span> <span class="pl-k">long</span> <span class="pl-k">long</span> ret;</div></div></div><div class="child-of-line-126  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC130" class="react-file-line html-div" data-testid="code-cell" data-line-number="130" style="position:relative">    <span class="pl-k">const</span> <span class="pl-k">bool</span> hex = <span class="pl-c1">isHex</span>(s);</div></div></div><div class="child-of-line-126  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC131" class="react-file-line html-div" data-testid="code-cell" data-line-number="131" style="position:relative">    <span class="pl-k">const</span> <span class="pl-k">bool</span> oct = <span class="pl-c1">isOct</span>(s);</div></div></div><div class="child-of-line-126  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC132" class="react-file-line html-div" data-testid="code-cell" data-line-number="132" style="position:relative">    std::istringstream <span class="pl-smi">istr</span>(hex ? s.<span class="pl-c1">substr</span>(<span class="pl-c1">2</span>) : oct ? s.<span class="pl-c1">substr</span>(<span class="pl-c1">1</span>) : s);</div></div></div><div class="child-of-line-126  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC133" class="react-file-line html-div" data-testid="code-cell" data-line-number="133" style="position:relative">    <span class="pl-k">if</span> (hex)</div></div></div><div class="child-of-line-126  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC134" class="react-file-line html-div" data-testid="code-cell" data-line-number="134" style="position:relative">        istr &gt;&gt; std::hex;</div></div></div><div class="child-of-line-126  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC135" class="react-file-line html-div" data-testid="code-cell" data-line-number="135" style="position:relative">    <span class="pl-k">else</span> <span class="pl-k">if</span> (oct)</div></div></div><div class="child-of-line-126  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC136" class="react-file-line html-div" data-testid="code-cell" data-line-number="136" style="position:relative">        istr &gt;&gt; std::oct;</div></div></div><div class="child-of-line-126  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC137" class="react-file-line html-div" data-testid="code-cell" data-line-number="137" style="position:relative">    istr &gt;&gt; ret;</div></div></div><div class="child-of-line-126  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC138" class="react-file-line html-div" data-testid="code-cell" data-line-number="138" style="position:relative">    <span class="pl-k">return</span> ret;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC139" class="react-file-line html-div" data-testid="code-cell" data-line-number="139" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC140" class="react-file-line html-div" data-testid="code-cell" data-line-number="140" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC141" class="react-file-line html-div" data-testid="code-cell" data-line-number="141" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">bool</span> <span class="pl-en">endsWith</span>(<span class="pl-k">const</span> std::string &amp;s, <span class="pl-k">const</span> std::string &amp;e)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC142" class="react-file-line html-div" data-testid="code-cell" data-line-number="142" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC143" class="react-file-line html-div" data-testid="code-cell" data-line-number="143" style="position:relative">    <span class="pl-k">return</span> (s.<span class="pl-c1">size</span>() &gt;= e.<span class="pl-c1">size</span>()) &amp;&amp; <span class="pl-c1">std::equal</span>(e.<span class="pl-c1">rbegin</span>(), e.<span class="pl-c1">rend</span>(), s.<span class="pl-c1">rbegin</span>());</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC144" class="react-file-line html-div" data-testid="code-cell" data-line-number="144" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC145" class="react-file-line html-div" data-testid="code-cell" data-line-number="145" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC146" class="react-file-line html-div" data-testid="code-cell" data-line-number="146" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">bool</span> <span class="pl-en">sameline</span>(<span class="pl-k">const</span> simplecpp::Token *tok1, <span class="pl-k">const</span> simplecpp::Token *tok2)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC147" class="react-file-line html-div" data-testid="code-cell" data-line-number="147" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC148" class="react-file-line html-div" data-testid="code-cell" data-line-number="148" style="position:relative">    <span class="pl-k">return</span> tok1 &amp;&amp; tok2 &amp;&amp; tok1-&gt;<span class="pl-smi">location</span>.<span class="pl-c1">sameline</span>(tok2-&gt;<span class="pl-smi">location</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC149" class="react-file-line html-div" data-testid="code-cell" data-line-number="149" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC150" class="react-file-line html-div" data-testid="code-cell" data-line-number="150" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC151" class="react-file-line html-div" data-testid="code-cell" data-line-number="151" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">bool</span> <span class="pl-en">isAlternativeBinaryOp</span>(<span class="pl-k">const</span> simplecpp::Token *tok, <span class="pl-k">const</span> std::string &amp;alt)</div></div></div><div class="child-of-line-150  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC152" class="react-file-line html-div" data-testid="code-cell" data-line-number="152" style="position:relative">{</div></div></div><div class="child-of-line-150  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC153" class="react-file-line html-div" data-testid="code-cell" data-line-number="153" style="position:relative">    <span class="pl-k">return</span> (tok-&gt;<span class="pl-smi">name</span> &amp;&amp;</div></div></div><div class="child-of-line-150  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC154" class="react-file-line html-div" data-testid="code-cell" data-line-number="154" style="position:relative">            tok-&gt;<span class="pl-c1">str</span>() == alt &amp;&amp;</div></div></div><div class="child-of-line-150  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC155" class="react-file-line html-div" data-testid="code-cell" data-line-number="155" style="position:relative">            tok-&gt;<span class="pl-smi">previous</span> &amp;&amp;</div></div></div><div class="child-of-line-150  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC156" class="react-file-line html-div" data-testid="code-cell" data-line-number="156" style="position:relative">            tok-&gt;<span class="pl-smi">next</span> &amp;&amp;</div></div></div><div class="child-of-line-150  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC157" class="react-file-line html-div" data-testid="code-cell" data-line-number="157" style="position:relative">            (tok-&gt;<span class="pl-smi">previous</span>-&gt;<span class="pl-smi">number</span> || tok-&gt;<span class="pl-smi">previous</span>-&gt;<span class="pl-smi">name</span> || tok-&gt;<span class="pl-smi">previous</span>-&gt;<span class="pl-smi">op</span> == <span class="pl-s"><span class="pl-pds">&#039;</span>)<span class="pl-pds">&#039;</span></span>) &amp;&amp;</div></div></div><div class="child-of-line-150  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC158" class="react-file-line html-div" data-testid="code-cell" data-line-number="158" style="position:relative">            (tok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-smi">number</span> || tok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-smi">name</span> || tok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-smi">op</span> == <span class="pl-s"><span class="pl-pds">&#039;</span>(<span class="pl-pds">&#039;</span></span>));</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC159" class="react-file-line html-div" data-testid="code-cell" data-line-number="159" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC160" class="react-file-line html-div" data-testid="code-cell" data-line-number="160" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC161" class="react-file-line html-div" data-testid="code-cell" data-line-number="161" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">bool</span> <span class="pl-en">isAlternativeUnaryOp</span>(<span class="pl-k">const</span> simplecpp::Token *tok, <span class="pl-k">const</span> std::string &amp;alt)</div></div></div><div class="child-of-line-160  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC162" class="react-file-line html-div" data-testid="code-cell" data-line-number="162" style="position:relative">{</div></div></div><div class="child-of-line-160  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC163" class="react-file-line html-div" data-testid="code-cell" data-line-number="163" style="position:relative">    <span class="pl-k">return</span> ((tok-&gt;<span class="pl-smi">name</span> &amp;&amp; tok-&gt;<span class="pl-c1">str</span>() == alt) &amp;&amp;</div></div></div><div class="child-of-line-160  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC164" class="react-file-line html-div" data-testid="code-cell" data-line-number="164" style="position:relative">            (!tok-&gt;<span class="pl-smi">previous</span> || tok-&gt;<span class="pl-smi">previous</span>-&gt;<span class="pl-smi">op</span> == <span class="pl-s"><span class="pl-pds">&#039;</span>(<span class="pl-pds">&#039;</span></span>) &amp;&amp;</div></div></div><div class="child-of-line-160  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC165" class="react-file-line html-div" data-testid="code-cell" data-line-number="165" style="position:relative">            (tok-&gt;<span class="pl-smi">next</span> &amp;&amp; (tok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-smi">name</span> || tok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-smi">number</span>)));</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC166" class="react-file-line html-div" data-testid="code-cell" data-line-number="166" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC167" class="react-file-line html-div" data-testid="code-cell" data-line-number="167" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC168" class="react-file-line html-div" data-testid="code-cell" data-line-number="168" style="position:relative"><span class="pl-k">static</span> std::string <span class="pl-en">replaceAll</span>(std::string s, <span class="pl-k">const</span> std::string&amp; from, <span class="pl-k">const</span> std::string&amp; to)</div></div></div><div class="child-of-line-167  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC169" class="react-file-line html-div" data-testid="code-cell" data-line-number="169" style="position:relative">{</div></div></div><div class="child-of-line-167  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC170" class="react-file-line html-div" data-testid="code-cell" data-line-number="170" style="position:relative">    <span class="pl-k">for</span> (<span class="pl-c1">size_t</span> pos = s.<span class="pl-c1">find</span>(from); pos != std::string::npos; pos = s.<span class="pl-c1">find</span>(from, pos + to.<span class="pl-c1">size</span>()))</div></div></div><div class="child-of-line-167  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC171" class="react-file-line html-div" data-testid="code-cell" data-line-number="171" style="position:relative">        s.<span class="pl-c1">replace</span>(pos, from.<span class="pl-c1">size</span>(), to);</div></div></div><div class="child-of-line-167  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC172" class="react-file-line html-div" data-testid="code-cell" data-line-number="172" style="position:relative">    <span class="pl-k">return</span> s;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC173" class="react-file-line html-div" data-testid="code-cell" data-line-number="173" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC174" class="react-file-line html-div" data-testid="code-cell" data-line-number="174" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC175" class="react-file-line html-div" data-testid="code-cell" data-line-number="175" style="position:relative"><span class="pl-k">const</span> std::string simplecpp::Location::emptyFileName;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC176" class="react-file-line html-div" data-testid="code-cell" data-line-number="176" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC177" class="react-file-line html-div" data-testid="code-cell" data-line-number="177" style="position:relative"><span class="pl-k">void</span> <span class="pl-en">simplecpp::Location::adjust</span>(<span class="pl-k">const</span> std::string &amp;str)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC178" class="react-file-line html-div" data-testid="code-cell" data-line-number="178" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC179" class="react-file-line html-div" data-testid="code-cell" data-line-number="179" style="position:relative">    <span class="pl-k">if</span> (<span class="pl-c1">strpbrk</span>(str.<span class="pl-c1">c_str</span>(), <span class="pl-s"><span class="pl-pds">&quot;</span><span class="pl-cce">\r\n</span><span class="pl-pds">&quot;</span></span>) == <span class="pl-c1">nullptr</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC180" class="react-file-line html-div" data-testid="code-cell" data-line-number="180" style="position:relative">        col += str.<span class="pl-c1">size</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC181" class="react-file-line html-div" data-testid="code-cell" data-line-number="181" style="position:relative">        <span class="pl-k">return</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC182" class="react-file-line html-div" data-testid="code-cell" data-line-number="182" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC183" class="react-file-line html-div" data-testid="code-cell" data-line-number="183" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC184" class="react-file-line html-div" data-testid="code-cell" data-line-number="184" style="position:relative">    <span class="pl-k">for</span> (std::<span class="pl-c1">size_t</span> i = <span class="pl-c1">0U</span>; i &lt; str.<span class="pl-c1">size</span>(); ++i) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC185" class="react-file-line html-div" data-testid="code-cell" data-line-number="185" style="position:relative">        col++;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC186" class="react-file-line html-div" data-testid="code-cell" data-line-number="186" style="position:relative">        <span class="pl-k">if</span> (str[i] == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\n</span><span class="pl-pds">&#039;</span></span> || str[i] == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\r</span><span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC187" class="react-file-line html-div" data-testid="code-cell" data-line-number="187" style="position:relative">            col = <span class="pl-c1">1</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC188" class="react-file-line html-div" data-testid="code-cell" data-line-number="188" style="position:relative">            line++;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC189" class="react-file-line html-div" data-testid="code-cell" data-line-number="189" style="position:relative">            <span class="pl-k">if</span> (str[i] == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\r</span><span class="pl-pds">&#039;</span></span> &amp;&amp; (i+<span class="pl-c1">1</span>)&lt;str.<span class="pl-c1">size</span>() &amp;&amp; str[i+<span class="pl-c1">1</span>]==<span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\n</span><span class="pl-pds">&#039;</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC190" class="react-file-line html-div" data-testid="code-cell" data-line-number="190" style="position:relative">                ++i;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC191" class="react-file-line html-div" data-testid="code-cell" data-line-number="191" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC192" class="react-file-line html-div" data-testid="code-cell" data-line-number="192" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC193" class="react-file-line html-div" data-testid="code-cell" data-line-number="193" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC194" class="react-file-line html-div" data-testid="code-cell" data-line-number="194" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC195" class="react-file-line html-div" data-testid="code-cell" data-line-number="195" style="position:relative"><span class="pl-k">bool</span> <span class="pl-en">simplecpp::Token::isOneOf</span>(<span class="pl-k">const</span> <span class="pl-k">char</span> ops[]) <span class="pl-k">const</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC196" class="react-file-line html-div" data-testid="code-cell" data-line-number="196" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC197" class="react-file-line html-div" data-testid="code-cell" data-line-number="197" style="position:relative">    <span class="pl-k">return</span> (op != <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\0</span><span class="pl-pds">&#039;</span></span>) &amp;&amp; (<span class="pl-c1">std::strchr</span>(ops, op) != <span class="pl-c1">nullptr</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC198" class="react-file-line html-div" data-testid="code-cell" data-line-number="198" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC199" class="react-file-line html-div" data-testid="code-cell" data-line-number="199" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC200" class="react-file-line html-div" data-testid="code-cell" data-line-number="200" style="position:relative"><span class="pl-k">bool</span> <span class="pl-en">simplecpp::Token::startsWithOneOf</span>(<span class="pl-k">const</span> <span class="pl-k">char</span> c[]) <span class="pl-k">const</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC201" class="react-file-line html-div" data-testid="code-cell" data-line-number="201" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC202" class="react-file-line html-div" data-testid="code-cell" data-line-number="202" style="position:relative">    <span class="pl-k">return</span> <span class="pl-c1">std::strchr</span>(c, string[<span class="pl-c1">0</span>]) != <span class="pl-c1">nullptr</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC203" class="react-file-line html-div" data-testid="code-cell" data-line-number="203" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC204" class="react-file-line html-div" data-testid="code-cell" data-line-number="204" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC205" class="react-file-line html-div" data-testid="code-cell" data-line-number="205" style="position:relative"><span class="pl-k">bool</span> <span class="pl-en">simplecpp::Token::endsWithOneOf</span>(<span class="pl-k">const</span> <span class="pl-k">char</span> c[]) <span class="pl-k">const</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC206" class="react-file-line html-div" data-testid="code-cell" data-line-number="206" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC207" class="react-file-line html-div" data-testid="code-cell" data-line-number="207" style="position:relative">    <span class="pl-k">return</span> <span class="pl-c1">std::strchr</span>(c, string[string.<span class="pl-c1">size</span>() - <span class="pl-c1">1U</span>]) != <span class="pl-c1">nullptr</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC208" class="react-file-line html-div" data-testid="code-cell" data-line-number="208" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC209" class="react-file-line html-div" data-testid="code-cell" data-line-number="209" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC210" class="react-file-line html-div" data-testid="code-cell" data-line-number="210" style="position:relative"><span class="pl-k">void</span> <span class="pl-en">simplecpp::Token::printAll</span>() <span class="pl-k">const</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC211" class="react-file-line html-div" data-testid="code-cell" data-line-number="211" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC212" class="react-file-line html-div" data-testid="code-cell" data-line-number="212" style="position:relative">    <span class="pl-k">const</span> Token *tok = <span class="pl-c1">this</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC213" class="react-file-line html-div" data-testid="code-cell" data-line-number="213" style="position:relative">    <span class="pl-k">while</span> (tok-&gt;<span class="pl-smi">previous</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC214" class="react-file-line html-div" data-testid="code-cell" data-line-number="214" style="position:relative">        tok = tok-&gt;<span class="pl-smi">previous</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC215" class="react-file-line html-div" data-testid="code-cell" data-line-number="215" style="position:relative">    <span class="pl-k">for</span> (; tok; tok = tok-&gt;<span class="pl-smi">next</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC216" class="react-file-line html-div" data-testid="code-cell" data-line-number="216" style="position:relative">        <span class="pl-k">if</span> (tok-&gt;<span class="pl-smi">previous</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC217" class="react-file-line html-div" data-testid="code-cell" data-line-number="217" style="position:relative">            std::cout &lt;&lt; (<span class="pl-c1">sameline</span>(tok, tok-&gt;<span class="pl-smi">previous</span>) ? <span class="pl-s"><span class="pl-pds">&#039;</span> <span class="pl-pds">&#039;</span></span> : <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\n</span><span class="pl-pds">&#039;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC218" class="react-file-line html-div" data-testid="code-cell" data-line-number="218" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC219" class="react-file-line html-div" data-testid="code-cell" data-line-number="219" style="position:relative">        std::cout &lt;&lt; tok-&gt;<span class="pl-c1">str</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC220" class="react-file-line html-div" data-testid="code-cell" data-line-number="220" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC221" class="react-file-line html-div" data-testid="code-cell" data-line-number="221" style="position:relative">    std::cout &lt;&lt; std::endl;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC222" class="react-file-line html-div" data-testid="code-cell" data-line-number="222" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC223" class="react-file-line html-div" data-testid="code-cell" data-line-number="223" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC224" class="react-file-line html-div" data-testid="code-cell" data-line-number="224" style="position:relative"><span class="pl-k">void</span> <span class="pl-en">simplecpp::Token::printOut</span>() <span class="pl-k">const</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC225" class="react-file-line html-div" data-testid="code-cell" data-line-number="225" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC226" class="react-file-line html-div" data-testid="code-cell" data-line-number="226" style="position:relative">    <span class="pl-k">for</span> (<span class="pl-k">const</span> Token *tok = <span class="pl-c1">this</span>; tok; tok = tok-&gt;<span class="pl-smi">next</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC227" class="react-file-line html-div" data-testid="code-cell" data-line-number="227" style="position:relative">        <span class="pl-k">if</span> (tok != <span class="pl-c1">this</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC228" class="react-file-line html-div" data-testid="code-cell" data-line-number="228" style="position:relative">            std::cout &lt;&lt; (<span class="pl-c1">sameline</span>(tok, tok-&gt;<span class="pl-smi">previous</span>) ? <span class="pl-s"><span class="pl-pds">&#039;</span> <span class="pl-pds">&#039;</span></span> : <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\n</span><span class="pl-pds">&#039;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC229" class="react-file-line html-div" data-testid="code-cell" data-line-number="229" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC230" class="react-file-line html-div" data-testid="code-cell" data-line-number="230" style="position:relative">        std::cout &lt;&lt; tok-&gt;<span class="pl-c1">str</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC231" class="react-file-line html-div" data-testid="code-cell" data-line-number="231" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC232" class="react-file-line html-div" data-testid="code-cell" data-line-number="232" style="position:relative">    std::cout &lt;&lt; std::endl;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC233" class="react-file-line html-div" data-testid="code-cell" data-line-number="233" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC234" class="react-file-line html-div" data-testid="code-cell" data-line-number="234" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC235" class="react-file-line html-div" data-testid="code-cell" data-line-number="235" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> cppcheck-suppress noConstructor - we call init() in the inherited to initialize the private members</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC236" class="react-file-line html-div" data-testid="code-cell" data-line-number="236" style="position:relative"><span class="pl-k">class</span> <span class="pl-en">simplecpp</span>::TokenList::Stream {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC237" class="react-file-line html-div" data-testid="code-cell" data-line-number="237" style="position:relative"><span class="pl-k">public:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC238" class="react-file-line html-div" data-testid="code-cell" data-line-number="238" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-en">~Stream</span>() {}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC239" class="react-file-line html-div" data-testid="code-cell" data-line-number="239" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC240" class="react-file-line html-div" data-testid="code-cell" data-line-number="240" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-k">int</span> <span class="pl-en">get</span>() = 0;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC241" class="react-file-line html-div" data-testid="code-cell" data-line-number="241" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-k">int</span> <span class="pl-en">peek</span>() = 0;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC242" class="react-file-line html-div" data-testid="code-cell" data-line-number="242" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-k">void</span> <span class="pl-en">unget</span>() = 0;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC243" class="react-file-line html-div" data-testid="code-cell" data-line-number="243" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-k">bool</span> <span class="pl-en">good</span>() = 0;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC244" class="react-file-line html-div" data-testid="code-cell" data-line-number="244" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC245" class="react-file-line html-div" data-testid="code-cell" data-line-number="245" style="position:relative">    <span class="pl-k">unsigned</span> <span class="pl-k">char</span> <span class="pl-en">readChar</span>()</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC246" class="react-file-line html-div" data-testid="code-cell" data-line-number="246" style="position:relative">    {</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC247" class="react-file-line html-div" data-testid="code-cell" data-line-number="247" style="position:relative">        <span class="pl-k">unsigned</span> <span class="pl-k">char</span> ch = <span class="pl-k">static_cast</span>&lt;<span class="pl-k">unsigned</span> <span class="pl-k">char</span>&gt;(<span class="pl-c1">get</span>());</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC248" class="react-file-line html-div" data-testid="code-cell" data-line-number="248" style="position:relative">
</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC249" class="react-file-line html-div" data-testid="code-cell" data-line-number="249" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> For UTF-16 encoded files the BOM is 0xfeff/0xfffe. If the</span></div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC250" class="react-file-line html-div" data-testid="code-cell" data-line-number="250" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> character is non-ASCII character then replace it with 0xff</span></div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC251" class="react-file-line html-div" data-testid="code-cell" data-line-number="251" style="position:relative">        <span class="pl-k">if</span> (isUtf16) {</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC252" class="react-file-line html-div" data-testid="code-cell" data-line-number="252" style="position:relative">            <span class="pl-k">const</span> <span class="pl-k">unsigned</span> <span class="pl-k">char</span> ch2 = <span class="pl-k">static_cast</span>&lt;<span class="pl-k">unsigned</span> <span class="pl-k">char</span>&gt;(<span class="pl-c1">get</span>());</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC253" class="react-file-line html-div" data-testid="code-cell" data-line-number="253" style="position:relative">            <span class="pl-k">const</span> <span class="pl-k">int</span> ch16 = <span class="pl-c1">makeUtf16Char</span>(ch, ch2);</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC254" class="react-file-line html-div" data-testid="code-cell" data-line-number="254" style="position:relative">            ch = <span class="pl-k">static_cast</span>&lt;<span class="pl-k">unsigned</span> <span class="pl-k">char</span>&gt;(((ch16 &gt;= <span class="pl-c1">0x80</span>) ? <span class="pl-c1">0xff</span> : ch16));</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC255" class="react-file-line html-div" data-testid="code-cell" data-line-number="255" style="position:relative">        }</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC256" class="react-file-line html-div" data-testid="code-cell" data-line-number="256" style="position:relative">
</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC257" class="react-file-line html-div" data-testid="code-cell" data-line-number="257" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> Handling of newlines..</span></div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC258" class="react-file-line html-div" data-testid="code-cell" data-line-number="258" style="position:relative">        <span class="pl-k">if</span> (ch == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\r</span><span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC259" class="react-file-line html-div" data-testid="code-cell" data-line-number="259" style="position:relative">            ch = <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\n</span><span class="pl-pds">&#039;</span></span>;</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC260" class="react-file-line html-div" data-testid="code-cell" data-line-number="260" style="position:relative">
</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC261" class="react-file-line html-div" data-testid="code-cell" data-line-number="261" style="position:relative">            <span class="pl-k">int</span> ch2 = <span class="pl-c1">get</span>();</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC262" class="react-file-line html-div" data-testid="code-cell" data-line-number="262" style="position:relative">            <span class="pl-k">if</span> (isUtf16) {</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC263" class="react-file-line html-div" data-testid="code-cell" data-line-number="263" style="position:relative">                <span class="pl-k">const</span> <span class="pl-k">int</span> c2 = <span class="pl-c1">get</span>();</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC264" class="react-file-line html-div" data-testid="code-cell" data-line-number="264" style="position:relative">                ch2 = <span class="pl-c1">makeUtf16Char</span>(ch2, c2);</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC265" class="react-file-line html-div" data-testid="code-cell" data-line-number="265" style="position:relative">            }</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC266" class="react-file-line html-div" data-testid="code-cell" data-line-number="266" style="position:relative">
</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC267" class="react-file-line html-div" data-testid="code-cell" data-line-number="267" style="position:relative">            <span class="pl-k">if</span> (ch2 != <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\n</span><span class="pl-pds">&#039;</span></span>)</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC268" class="react-file-line html-div" data-testid="code-cell" data-line-number="268" style="position:relative">                <span class="pl-c1">ungetChar</span>();</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC269" class="react-file-line html-div" data-testid="code-cell" data-line-number="269" style="position:relative">        }</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC270" class="react-file-line html-div" data-testid="code-cell" data-line-number="270" style="position:relative">
</div></div></div><div class="child-of-line-244  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC271" class="react-file-line html-div" data-testid="code-cell" data-line-number="271" style="position:relative">        <span class="pl-k">return</span> ch;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC272" class="react-file-line html-div" data-testid="code-cell" data-line-number="272" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC273" class="react-file-line html-div" data-testid="code-cell" data-line-number="273" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC274" class="react-file-line html-div" data-testid="code-cell" data-line-number="274" style="position:relative">    <span class="pl-k">unsigned</span> <span class="pl-k">char</span> <span class="pl-en">peekChar</span>()</div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC275" class="react-file-line html-div" data-testid="code-cell" data-line-number="275" style="position:relative">    {</div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC276" class="react-file-line html-div" data-testid="code-cell" data-line-number="276" style="position:relative">        <span class="pl-k">unsigned</span> <span class="pl-k">char</span> ch = <span class="pl-k">static_cast</span>&lt;<span class="pl-k">unsigned</span> <span class="pl-k">char</span>&gt;(<span class="pl-c1">peek</span>());</div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC277" class="react-file-line html-div" data-testid="code-cell" data-line-number="277" style="position:relative">
</div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC278" class="react-file-line html-div" data-testid="code-cell" data-line-number="278" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> For UTF-16 encoded files the BOM is 0xfeff/0xfffe. If the</span></div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC279" class="react-file-line html-div" data-testid="code-cell" data-line-number="279" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> character is non-ASCII character then replace it with 0xff</span></div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC280" class="react-file-line html-div" data-testid="code-cell" data-line-number="280" style="position:relative">        <span class="pl-k">if</span> (isUtf16) {</div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC281" class="react-file-line html-div" data-testid="code-cell" data-line-number="281" style="position:relative">            (<span class="pl-k">void</span>)<span class="pl-c1">get</span>();</div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC282" class="react-file-line html-div" data-testid="code-cell" data-line-number="282" style="position:relative">            <span class="pl-k">const</span> <span class="pl-k">unsigned</span> <span class="pl-k">char</span> ch2 = <span class="pl-k">static_cast</span>&lt;<span class="pl-k">unsigned</span> <span class="pl-k">char</span>&gt;(<span class="pl-c1">peek</span>());</div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC283" class="react-file-line html-div" data-testid="code-cell" data-line-number="283" style="position:relative">            <span class="pl-c1">unget</span>();</div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC284" class="react-file-line html-div" data-testid="code-cell" data-line-number="284" style="position:relative">            <span class="pl-k">const</span> <span class="pl-k">int</span> ch16 = <span class="pl-c1">makeUtf16Char</span>(ch, ch2);</div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC285" class="react-file-line html-div" data-testid="code-cell" data-line-number="285" style="position:relative">            ch = <span class="pl-k">static_cast</span>&lt;<span class="pl-k">unsigned</span> <span class="pl-k">char</span>&gt;(((ch16 &gt;= <span class="pl-c1">0x80</span>) ? <span class="pl-c1">0xff</span> : ch16));</div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC286" class="react-file-line html-div" data-testid="code-cell" data-line-number="286" style="position:relative">        }</div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC287" class="react-file-line html-div" data-testid="code-cell" data-line-number="287" style="position:relative">
</div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC288" class="react-file-line html-div" data-testid="code-cell" data-line-number="288" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> Handling of newlines..</span></div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC289" class="react-file-line html-div" data-testid="code-cell" data-line-number="289" style="position:relative">        <span class="pl-k">if</span> (ch == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\r</span><span class="pl-pds">&#039;</span></span>)</div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC290" class="react-file-line html-div" data-testid="code-cell" data-line-number="290" style="position:relative">            ch = <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\n</span><span class="pl-pds">&#039;</span></span>;</div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC291" class="react-file-line html-div" data-testid="code-cell" data-line-number="291" style="position:relative">
</div></div></div><div class="child-of-line-273  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC292" class="react-file-line html-div" data-testid="code-cell" data-line-number="292" style="position:relative">        <span class="pl-k">return</span> ch;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC293" class="react-file-line html-div" data-testid="code-cell" data-line-number="293" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC294" class="react-file-line html-div" data-testid="code-cell" data-line-number="294" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC295" class="react-file-line html-div" data-testid="code-cell" data-line-number="295" style="position:relative">    <span class="pl-k">void</span> <span class="pl-en">ungetChar</span>()</div></div></div><div class="child-of-line-294  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC296" class="react-file-line html-div" data-testid="code-cell" data-line-number="296" style="position:relative">    {</div></div></div><div class="child-of-line-294  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC297" class="react-file-line html-div" data-testid="code-cell" data-line-number="297" style="position:relative">        <span class="pl-c1">unget</span>();</div></div></div><div class="child-of-line-294  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC298" class="react-file-line html-div" data-testid="code-cell" data-line-number="298" style="position:relative">        <span class="pl-k">if</span> (isUtf16)</div></div></div><div class="child-of-line-294  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC299" class="react-file-line html-div" data-testid="code-cell" data-line-number="299" style="position:relative">            <span class="pl-c1">unget</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC300" class="react-file-line html-div" data-testid="code-cell" data-line-number="300" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC301" class="react-file-line html-div" data-testid="code-cell" data-line-number="301" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC302" class="react-file-line html-div" data-testid="code-cell" data-line-number="302" style="position:relative"><span class="pl-k">protected:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC303" class="react-file-line html-div" data-testid="code-cell" data-line-number="303" style="position:relative">    <span class="pl-k">void</span> <span class="pl-en">init</span>() {</div></div></div><div class="child-of-line-302  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC304" class="react-file-line html-div" data-testid="code-cell" data-line-number="304" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> initialize since we use peek() in getAndSkipBOM()</span></div></div></div><div class="child-of-line-302  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC305" class="react-file-line html-div" data-testid="code-cell" data-line-number="305" style="position:relative">        isUtf16 = <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-302  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC306" class="react-file-line html-div" data-testid="code-cell" data-line-number="306" style="position:relative">        bom = <span class="pl-c1">getAndSkipBOM</span>();</div></div></div><div class="child-of-line-302  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC307" class="react-file-line html-div" data-testid="code-cell" data-line-number="307" style="position:relative">        isUtf16 = (bom == <span class="pl-c1">0xfeff</span> || bom == <span class="pl-c1">0xfffe</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC308" class="react-file-line html-div" data-testid="code-cell" data-line-number="308" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC309" class="react-file-line html-div" data-testid="code-cell" data-line-number="309" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC310" class="react-file-line html-div" data-testid="code-cell" data-line-number="310" style="position:relative"><span class="pl-k">private:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC311" class="react-file-line html-div" data-testid="code-cell" data-line-number="311" style="position:relative">    <span class="pl-k">inline</span> <span class="pl-k">int</span> <span class="pl-en">makeUtf16Char</span>(<span class="pl-k">const</span> <span class="pl-k">unsigned</span> <span class="pl-k">char</span> ch, <span class="pl-k">const</span> <span class="pl-k">unsigned</span> <span class="pl-k">char</span> ch2) <span class="pl-k">const</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC312" class="react-file-line html-div" data-testid="code-cell" data-line-number="312" style="position:relative">    {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC313" class="react-file-line html-div" data-testid="code-cell" data-line-number="313" style="position:relative">        <span class="pl-k">return</span> (bom == <span class="pl-c1">0xfeff</span>) ? (ch&lt;&lt;<span class="pl-c1">8</span> | ch2) : (ch2&lt;&lt;<span class="pl-c1">8</span> | ch);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC314" class="react-file-line html-div" data-testid="code-cell" data-line-number="314" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC315" class="react-file-line html-div" data-testid="code-cell" data-line-number="315" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC316" class="react-file-line html-div" data-testid="code-cell" data-line-number="316" style="position:relative">    <span class="pl-k">unsigned</span> <span class="pl-k">short</span> <span class="pl-en">getAndSkipBOM</span>()</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC317" class="react-file-line html-div" data-testid="code-cell" data-line-number="317" style="position:relative">    {</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC318" class="react-file-line html-div" data-testid="code-cell" data-line-number="318" style="position:relative">        <span class="pl-k">const</span> <span class="pl-k">int</span> ch1 = <span class="pl-c1">peek</span>();</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC319" class="react-file-line html-div" data-testid="code-cell" data-line-number="319" style="position:relative">
</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC320" class="react-file-line html-div" data-testid="code-cell" data-line-number="320" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> The UTF-16 BOM is 0xfffe or 0xfeff.</span></div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC321" class="react-file-line html-div" data-testid="code-cell" data-line-number="321" style="position:relative">        <span class="pl-k">if</span> (ch1 &gt;= <span class="pl-c1">0xfe</span>) {</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC322" class="react-file-line html-div" data-testid="code-cell" data-line-number="322" style="position:relative">            (<span class="pl-k">void</span>)<span class="pl-c1">get</span>();</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC323" class="react-file-line html-div" data-testid="code-cell" data-line-number="323" style="position:relative">            <span class="pl-k">const</span> <span class="pl-k">unsigned</span> <span class="pl-k">short</span> byte = (<span class="pl-k">static_cast</span>&lt;<span class="pl-k">unsigned</span> <span class="pl-k">char</span>&gt;(ch1) &lt;&lt; <span class="pl-c1">8</span>);</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC324" class="react-file-line html-div" data-testid="code-cell" data-line-number="324" style="position:relative">            <span class="pl-k">if</span> (<span class="pl-c1">peek</span>() &gt;= <span class="pl-c1">0xfe</span>)</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC325" class="react-file-line html-div" data-testid="code-cell" data-line-number="325" style="position:relative">                <span class="pl-k">return</span> byte | <span class="pl-k">static_cast</span>&lt;<span class="pl-k">unsigned</span> <span class="pl-k">char</span>&gt;(<span class="pl-c1">get</span>());</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC326" class="react-file-line html-div" data-testid="code-cell" data-line-number="326" style="position:relative">            <span class="pl-c1">unget</span>();</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC327" class="react-file-line html-div" data-testid="code-cell" data-line-number="327" style="position:relative">            <span class="pl-k">return</span> <span class="pl-c1">0</span>;</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC328" class="react-file-line html-div" data-testid="code-cell" data-line-number="328" style="position:relative">        }</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC329" class="react-file-line html-div" data-testid="code-cell" data-line-number="329" style="position:relative">
</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC330" class="react-file-line html-div" data-testid="code-cell" data-line-number="330" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> Skip UTF-8 BOM 0xefbbbf</span></div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC331" class="react-file-line html-div" data-testid="code-cell" data-line-number="331" style="position:relative">        <span class="pl-k">if</span> (ch1 == <span class="pl-c1">0xef</span>) {</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC332" class="react-file-line html-div" data-testid="code-cell" data-line-number="332" style="position:relative">            (<span class="pl-k">void</span>)<span class="pl-c1">get</span>();</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC333" class="react-file-line html-div" data-testid="code-cell" data-line-number="333" style="position:relative">            <span class="pl-k">if</span> (<span class="pl-c1">peek</span>() == <span class="pl-c1">0xbb</span>) {</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC334" class="react-file-line html-div" data-testid="code-cell" data-line-number="334" style="position:relative">                (<span class="pl-k">void</span>)<span class="pl-c1">get</span>();</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC335" class="react-file-line html-div" data-testid="code-cell" data-line-number="335" style="position:relative">                <span class="pl-k">if</span> (<span class="pl-c1">peek</span>() == <span class="pl-c1">0xbf</span>) {</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC336" class="react-file-line html-div" data-testid="code-cell" data-line-number="336" style="position:relative">                    (<span class="pl-k">void</span>)<span class="pl-c1">get</span>();</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC337" class="react-file-line html-div" data-testid="code-cell" data-line-number="337" style="position:relative">                    <span class="pl-k">return</span> <span class="pl-c1">0</span>;</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC338" class="react-file-line html-div" data-testid="code-cell" data-line-number="338" style="position:relative">                }</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC339" class="react-file-line html-div" data-testid="code-cell" data-line-number="339" style="position:relative">                <span class="pl-c1">unget</span>();</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC340" class="react-file-line html-div" data-testid="code-cell" data-line-number="340" style="position:relative">            }</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC341" class="react-file-line html-div" data-testid="code-cell" data-line-number="341" style="position:relative">            <span class="pl-c1">unget</span>();</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC342" class="react-file-line html-div" data-testid="code-cell" data-line-number="342" style="position:relative">        }</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC343" class="react-file-line html-div" data-testid="code-cell" data-line-number="343" style="position:relative">
</div></div></div><div class="child-of-line-315  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC344" class="react-file-line html-div" data-testid="code-cell" data-line-number="344" style="position:relative">        <span class="pl-k">return</span> <span class="pl-c1">0</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC345" class="react-file-line html-div" data-testid="code-cell" data-line-number="345" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC346" class="react-file-line html-div" data-testid="code-cell" data-line-number="346" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC347" class="react-file-line html-div" data-testid="code-cell" data-line-number="347" style="position:relative">    <span class="pl-k">unsigned</span> <span class="pl-k">short</span> bom;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC348" class="react-file-line html-div" data-testid="code-cell" data-line-number="348" style="position:relative"><span class="pl-k">protected:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC349" class="react-file-line html-div" data-testid="code-cell" data-line-number="349" style="position:relative">    <span class="pl-k">bool</span> isUtf16;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC350" class="react-file-line html-div" data-testid="code-cell" data-line-number="350" style="position:relative">};</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC351" class="react-file-line html-div" data-testid="code-cell" data-line-number="351" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC352" class="react-file-line html-div" data-testid="code-cell" data-line-number="352" style="position:relative"><span class="pl-k">class</span> <span class="pl-en">StdIStream</span> : <span class="pl-k">public</span> <span class="pl-en">simplecpp</span>::TokenList::Stream {</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC353" class="react-file-line html-div" data-testid="code-cell" data-line-number="353" style="position:relative"><span class="pl-k">public:</span></div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC354" class="react-file-line html-div" data-testid="code-cell" data-line-number="354" style="position:relative">    <span class="pl-c"><span class="pl-c">//</span> cppcheck-suppress uninitDerivedMemberVar - we call Stream::init() to initialize the private members</span></div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC355" class="react-file-line html-div" data-testid="code-cell" data-line-number="355" style="position:relative">    <span class="pl-c1">EXPLICIT</span> <span class="pl-en">StdIStream</span>(std::istream &amp;istr)</div></div></div><div class="child-of-line-351 child-of-line-354  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC356" class="react-file-line html-div" data-testid="code-cell" data-line-number="356" style="position:relative">        : istr(istr)</div></div></div><div class="child-of-line-351 child-of-line-354  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC357" class="react-file-line html-div" data-testid="code-cell" data-line-number="357" style="position:relative">    {</div></div></div><div class="child-of-line-351 child-of-line-354  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC358" class="react-file-line html-div" data-testid="code-cell" data-line-number="358" style="position:relative">        <span class="pl-k">assert</span>(istr.<span class="pl-c1">good</span>());</div></div></div><div class="child-of-line-351 child-of-line-354  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC359" class="react-file-line html-div" data-testid="code-cell" data-line-number="359" style="position:relative">        <span class="pl-c1">init</span>();</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC360" class="react-file-line html-div" data-testid="code-cell" data-line-number="360" style="position:relative">    }</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC361" class="react-file-line html-div" data-testid="code-cell" data-line-number="361" style="position:relative">
</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC362" class="react-file-line html-div" data-testid="code-cell" data-line-number="362" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-k">int</span> <span class="pl-en">get</span>() OVERRIDE {</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC363" class="react-file-line html-div" data-testid="code-cell" data-line-number="363" style="position:relative">        <span class="pl-k">return</span> istr.<span class="pl-c1">get</span>();</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC364" class="react-file-line html-div" data-testid="code-cell" data-line-number="364" style="position:relative">    }</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC365" class="react-file-line html-div" data-testid="code-cell" data-line-number="365" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-k">int</span> <span class="pl-en">peek</span>() OVERRIDE {</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC366" class="react-file-line html-div" data-testid="code-cell" data-line-number="366" style="position:relative">        <span class="pl-k">return</span> istr.<span class="pl-c1">peek</span>();</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC367" class="react-file-line html-div" data-testid="code-cell" data-line-number="367" style="position:relative">    }</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC368" class="react-file-line html-div" data-testid="code-cell" data-line-number="368" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-k">void</span> <span class="pl-en">unget</span>() OVERRIDE {</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC369" class="react-file-line html-div" data-testid="code-cell" data-line-number="369" style="position:relative">        istr.<span class="pl-c1">unget</span>();</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC370" class="react-file-line html-div" data-testid="code-cell" data-line-number="370" style="position:relative">    }</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC371" class="react-file-line html-div" data-testid="code-cell" data-line-number="371" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-k">bool</span> <span class="pl-en">good</span>() OVERRIDE {</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC372" class="react-file-line html-div" data-testid="code-cell" data-line-number="372" style="position:relative">        <span class="pl-k">return</span> istr.<span class="pl-c1">good</span>();</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC373" class="react-file-line html-div" data-testid="code-cell" data-line-number="373" style="position:relative">    }</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC374" class="react-file-line html-div" data-testid="code-cell" data-line-number="374" style="position:relative">
</div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC375" class="react-file-line html-div" data-testid="code-cell" data-line-number="375" style="position:relative"><span class="pl-k">private:</span></div></div></div><div class="child-of-line-351  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC376" class="react-file-line html-div" data-testid="code-cell" data-line-number="376" style="position:relative">    std::istream &amp;istr;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC377" class="react-file-line html-div" data-testid="code-cell" data-line-number="377" style="position:relative">};</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC378" class="react-file-line html-div" data-testid="code-cell" data-line-number="378" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC379" class="react-file-line html-div" data-testid="code-cell" data-line-number="379" style="position:relative"><span class="pl-k">class</span> <span class="pl-en">StdCharBufStream</span> : <span class="pl-k">public</span> <span class="pl-en">simplecpp</span>::TokenList::Stream {</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC380" class="react-file-line html-div" data-testid="code-cell" data-line-number="380" style="position:relative"><span class="pl-k">public:</span></div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC381" class="react-file-line html-div" data-testid="code-cell" data-line-number="381" style="position:relative">    <span class="pl-c"><span class="pl-c">//</span> cppcheck-suppress uninitDerivedMemberVar - we call Stream::init() to initialize the private members</span></div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC382" class="react-file-line html-div" data-testid="code-cell" data-line-number="382" style="position:relative">    <span class="pl-en">StdCharBufStream</span>(<span class="pl-k">const</span> <span class="pl-k">unsigned</span> <span class="pl-k">char</span>* str, std::<span class="pl-c1">size_t</span> size)</div></div></div><div class="child-of-line-378 child-of-line-381  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC383" class="react-file-line html-div" data-testid="code-cell" data-line-number="383" style="position:relative">        : str(str)</div></div></div><div class="child-of-line-378 child-of-line-381  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC384" class="react-file-line html-div" data-testid="code-cell" data-line-number="384" style="position:relative">        , size(size)</div></div></div><div class="child-of-line-378 child-of-line-381  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC385" class="react-file-line html-div" data-testid="code-cell" data-line-number="385" style="position:relative">        , pos(<span class="pl-c1">0</span>)</div></div></div><div class="child-of-line-378 child-of-line-381  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC386" class="react-file-line html-div" data-testid="code-cell" data-line-number="386" style="position:relative">        , lastStatus(<span class="pl-c1">0</span>)</div></div></div><div class="child-of-line-378 child-of-line-381  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC387" class="react-file-line html-div" data-testid="code-cell" data-line-number="387" style="position:relative">    {</div></div></div><div class="child-of-line-378 child-of-line-381  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC388" class="react-file-line html-div" data-testid="code-cell" data-line-number="388" style="position:relative">        <span class="pl-c1">init</span>();</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC389" class="react-file-line html-div" data-testid="code-cell" data-line-number="389" style="position:relative">    }</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC390" class="react-file-line html-div" data-testid="code-cell" data-line-number="390" style="position:relative">
</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC391" class="react-file-line html-div" data-testid="code-cell" data-line-number="391" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-k">int</span> <span class="pl-en">get</span>() OVERRIDE {</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC392" class="react-file-line html-div" data-testid="code-cell" data-line-number="392" style="position:relative">        <span class="pl-k">if</span> (pos &gt;= size)</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC393" class="react-file-line html-div" data-testid="code-cell" data-line-number="393" style="position:relative">            <span class="pl-k">return</span> lastStatus = <span class="pl-c1">EOF</span>;</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC394" class="react-file-line html-div" data-testid="code-cell" data-line-number="394" style="position:relative">        <span class="pl-k">return</span> str[pos++];</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC395" class="react-file-line html-div" data-testid="code-cell" data-line-number="395" style="position:relative">    }</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC396" class="react-file-line html-div" data-testid="code-cell" data-line-number="396" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-k">int</span> <span class="pl-en">peek</span>() OVERRIDE {</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC397" class="react-file-line html-div" data-testid="code-cell" data-line-number="397" style="position:relative">        <span class="pl-k">if</span> (pos &gt;= size)</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC398" class="react-file-line html-div" data-testid="code-cell" data-line-number="398" style="position:relative">            <span class="pl-k">return</span> lastStatus = <span class="pl-c1">EOF</span>;</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC399" class="react-file-line html-div" data-testid="code-cell" data-line-number="399" style="position:relative">        <span class="pl-k">return</span> str[pos];</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC400" class="react-file-line html-div" data-testid="code-cell" data-line-number="400" style="position:relative">    }</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC401" class="react-file-line html-div" data-testid="code-cell" data-line-number="401" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-k">void</span> <span class="pl-en">unget</span>() OVERRIDE {</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC402" class="react-file-line html-div" data-testid="code-cell" data-line-number="402" style="position:relative">        --pos;</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC403" class="react-file-line html-div" data-testid="code-cell" data-line-number="403" style="position:relative">    }</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC404" class="react-file-line html-div" data-testid="code-cell" data-line-number="404" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-k">bool</span> <span class="pl-en">good</span>() OVERRIDE {</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC405" class="react-file-line html-div" data-testid="code-cell" data-line-number="405" style="position:relative">        <span class="pl-k">return</span> lastStatus != <span class="pl-c1">EOF</span>;</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC406" class="react-file-line html-div" data-testid="code-cell" data-line-number="406" style="position:relative">    }</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC407" class="react-file-line html-div" data-testid="code-cell" data-line-number="407" style="position:relative">
</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC408" class="react-file-line html-div" data-testid="code-cell" data-line-number="408" style="position:relative"><span class="pl-k">private:</span></div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC409" class="react-file-line html-div" data-testid="code-cell" data-line-number="409" style="position:relative">    <span class="pl-k">const</span> <span class="pl-k">unsigned</span> <span class="pl-k">char</span> *str;</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC410" class="react-file-line html-div" data-testid="code-cell" data-line-number="410" style="position:relative">    <span class="pl-k">const</span> std::<span class="pl-c1">size_t</span> size;</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC411" class="react-file-line html-div" data-testid="code-cell" data-line-number="411" style="position:relative">    std::<span class="pl-c1">size_t</span> pos;</div></div></div><div class="child-of-line-378  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC412" class="react-file-line html-div" data-testid="code-cell" data-line-number="412" style="position:relative">    <span class="pl-k">int</span> lastStatus;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC413" class="react-file-line html-div" data-testid="code-cell" data-line-number="413" style="position:relative">};</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC414" class="react-file-line html-div" data-testid="code-cell" data-line-number="414" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC415" class="react-file-line html-div" data-testid="code-cell" data-line-number="415" style="position:relative"><span class="pl-k">class</span> <span class="pl-en">FileStream</span> : <span class="pl-k">public</span> <span class="pl-en">simplecpp</span>::TokenList::Stream {</div></div></div><div class="child-of-line-414  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC416" class="react-file-line html-div" data-testid="code-cell" data-line-number="416" style="position:relative"><span class="pl-k">public:</span></div></div></div><div class="child-of-line-414  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC417" class="react-file-line html-div" data-testid="code-cell" data-line-number="417" style="position:relative">    <span class="pl-c"><span class="pl-c">//</span> cppcheck-suppress uninitDerivedMemberVar - we call Stream::init() to initialize the private members</span></div></div></div><div class="child-of-line-414  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC418" class="react-file-line html-div" data-testid="code-cell" data-line-number="418" style="position:relative">    <span class="pl-c1">EXPLICIT</span> <span class="pl-en">FileStream</span>(<span class="pl-k">const</span> std::string &amp;filename, std::vector&lt;std::string&gt; &amp;files)</div></div></div><div class="child-of-line-414 child-of-line-417  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC419" class="react-file-line html-div" data-testid="code-cell" data-line-number="419" style="position:relative">        : file(fopen(filename.c_str(), &quot;rb&quot;))</div></div></div><div class="child-of-line-414 child-of-line-417  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC420" class="react-file-line html-div" data-testid="code-cell" data-line-number="420" style="position:relative">        , lastCh(<span class="pl-c1">0</span>)</div></div></div><div class="child-of-line-414 child-of-line-417 child-of-line-419  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC421" class="react-file-line html-div" data-testid="code-cell" data-line-number="421" style="position:relative">        , lastStatus(<span class="pl-c1">0</span>)</div></div></div><div class="child-of-line-414 child-of-line-417 child-of-line-419 child-of-line-420  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC422" class="react-file-line html-div" data-testid="code-cell" data-line-number="422" style="position:relative">    {</div></div></div><div class="child-of-line-414 child-of-line-417 child-of-line-419 child-of-line-420  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC423" class="react-file-line html-div" data-testid="code-cell" data-line-number="423" style="position:relative">        <span class="pl-k">if</span> (!file) {</div></div></div><div class="child-of-line-414 child-of-line-417 child-of-line-419 child-of-line-420  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC424" class="react-file-line html-div" data-testid="code-cell" data-line-number="424" style="position:relative">            files.<span class="pl-c1">push_back</span>(filename);</div></div></div><div class="child-of-line-414 child-of-line-417 child-of-line-419 child-of-line-420  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC425" class="react-file-line html-div" data-testid="code-cell" data-line-number="425" style="position:relative">            <span class="pl-k">throw</span> <span class="pl-smi">simplecpp::Output</span>(files, simplecpp::Output::<span class="pl-c1">FILE_NOT_FOUND</span>, <span class="pl-s"><span class="pl-pds">&quot;</span>File is missing: <span class="pl-pds">&quot;</span></span> + filename);</div></div></div><div class="child-of-line-414 child-of-line-417 child-of-line-419 child-of-line-420  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC426" class="react-file-line html-div" data-testid="code-cell" data-line-number="426" style="position:relative">        }</div></div></div><div class="child-of-line-414  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC427" class="react-file-line html-div" data-testid="code-cell" data-line-number="427" style="position:relative">        <span class="pl-c1">init</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC428" class="react-file-line html-div" data-testid="code-cell" data-line-number="428" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC429" class="react-file-line html-div" data-testid="code-cell" data-line-number="429" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC430" class="react-file-line html-div" data-testid="code-cell" data-line-number="430" style="position:relative">    <span class="pl-en">~FileStream</span>() <span class="pl-c1">OVERRIDE</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC431" class="react-file-line html-div" data-testid="code-cell" data-line-number="431" style="position:relative">        <span class="pl-c1">fclose</span>(file);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC432" class="react-file-line html-div" data-testid="code-cell" data-line-number="432" style="position:relative">        file = <span class="pl-c1">nullptr</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC433" class="react-file-line html-div" data-testid="code-cell" data-line-number="433" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC434" class="react-file-line html-div" data-testid="code-cell" data-line-number="434" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC435" class="react-file-line html-div" data-testid="code-cell" data-line-number="435" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-k">int</span> <span class="pl-en">get</span>() OVERRIDE {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC436" class="react-file-line html-div" data-testid="code-cell" data-line-number="436" style="position:relative">        lastStatus = lastCh = <span class="pl-c1">fgetc</span>(file);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC437" class="react-file-line html-div" data-testid="code-cell" data-line-number="437" style="position:relative">        <span class="pl-k">return</span> lastCh;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC438" class="react-file-line html-div" data-testid="code-cell" data-line-number="438" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC439" class="react-file-line html-div" data-testid="code-cell" data-line-number="439" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-k">int</span> <span class="pl-en">peek</span>() OVERRIDE{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC440" class="react-file-line html-div" data-testid="code-cell" data-line-number="440" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> keep lastCh intact</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC441" class="react-file-line html-div" data-testid="code-cell" data-line-number="441" style="position:relative">        <span class="pl-k">const</span> <span class="pl-k">int</span> ch = <span class="pl-c1">fgetc</span>(file);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC442" class="react-file-line html-div" data-testid="code-cell" data-line-number="442" style="position:relative">        <span class="pl-c1">unget_internal</span>(ch);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC443" class="react-file-line html-div" data-testid="code-cell" data-line-number="443" style="position:relative">        <span class="pl-k">return</span> ch;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC444" class="react-file-line html-div" data-testid="code-cell" data-line-number="444" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC445" class="react-file-line html-div" data-testid="code-cell" data-line-number="445" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-k">void</span> <span class="pl-en">unget</span>() OVERRIDE {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC446" class="react-file-line html-div" data-testid="code-cell" data-line-number="446" style="position:relative">        <span class="pl-c1">unget_internal</span>(lastCh);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC447" class="react-file-line html-div" data-testid="code-cell" data-line-number="447" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC448" class="react-file-line html-div" data-testid="code-cell" data-line-number="448" style="position:relative">    <span class="pl-k">virtual</span> <span class="pl-k">bool</span> <span class="pl-en">good</span>() OVERRIDE {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC449" class="react-file-line html-div" data-testid="code-cell" data-line-number="449" style="position:relative">        <span class="pl-k">return</span> lastStatus != <span class="pl-c1">EOF</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC450" class="react-file-line html-div" data-testid="code-cell" data-line-number="450" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC451" class="react-file-line html-div" data-testid="code-cell" data-line-number="451" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC452" class="react-file-line html-div" data-testid="code-cell" data-line-number="452" style="position:relative"><span class="pl-k">private:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC453" class="react-file-line html-div" data-testid="code-cell" data-line-number="453" style="position:relative">    <span class="pl-k">void</span> <span class="pl-en">unget_internal</span>(<span class="pl-k">int</span> ch) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC454" class="react-file-line html-div" data-testid="code-cell" data-line-number="454" style="position:relative">        <span class="pl-k">if</span> (isUtf16) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC455" class="react-file-line html-div" data-testid="code-cell" data-line-number="455" style="position:relative">            <span class="pl-c"><span class="pl-c">//</span> TODO: use ungetc() as well</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC456" class="react-file-line html-div" data-testid="code-cell" data-line-number="456" style="position:relative">            <span class="pl-c"><span class="pl-c">//</span> UTF-16 has subsequent unget() calls</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC457" class="react-file-line html-div" data-testid="code-cell" data-line-number="457" style="position:relative">            <span class="pl-c1">fseek</span>(file, -<span class="pl-c1">1</span>, <span class="pl-c1">SEEK_CUR</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC458" class="react-file-line html-div" data-testid="code-cell" data-line-number="458" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC459" class="react-file-line html-div" data-testid="code-cell" data-line-number="459" style="position:relative">        <span class="pl-k">else</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC460" class="react-file-line html-div" data-testid="code-cell" data-line-number="460" style="position:relative">            <span class="pl-c1">ungetc</span>(ch, file);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC461" class="react-file-line html-div" data-testid="code-cell" data-line-number="461" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC462" class="react-file-line html-div" data-testid="code-cell" data-line-number="462" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC463" class="react-file-line html-div" data-testid="code-cell" data-line-number="463" style="position:relative">    <span class="pl-en">FileStream</span>(<span class="pl-k">const</span> FileStream&amp;);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC464" class="react-file-line html-div" data-testid="code-cell" data-line-number="464" style="position:relative">    FileStream &amp;<span class="pl-k">operator</span>=(<span class="pl-k">const</span> FileStream&amp;);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC465" class="react-file-line html-div" data-testid="code-cell" data-line-number="465" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC466" class="react-file-line html-div" data-testid="code-cell" data-line-number="466" style="position:relative">    <span class="pl-c1">FILE</span> *file;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC467" class="react-file-line html-div" data-testid="code-cell" data-line-number="467" style="position:relative">    <span class="pl-k">int</span> lastCh;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC468" class="react-file-line html-div" data-testid="code-cell" data-line-number="468" style="position:relative">    <span class="pl-k">int</span> lastStatus;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC469" class="react-file-line html-div" data-testid="code-cell" data-line-number="469" style="position:relative">};</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC470" class="react-file-line html-div" data-testid="code-cell" data-line-number="470" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC471" class="react-file-line html-div" data-testid="code-cell" data-line-number="471" style="position:relative"><span class="pl-en">simplecpp::TokenList::TokenList</span>(std::vector&lt;std::string&gt; &amp;filenames) : frontToken(<span class="pl-c1">nullptr</span>), backToken(<span class="pl-c1">nullptr</span>), files(filenames) {}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC472" class="react-file-line html-div" data-testid="code-cell" data-line-number="472" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC473" class="react-file-line html-div" data-testid="code-cell" data-line-number="473" style="position:relative"><span class="pl-en">simplecpp::TokenList::TokenList</span>(std::istream &amp;istr, std::vector&lt;std::string&gt; &amp;filenames, <span class="pl-k">const</span> std::string &amp;filename, OutputList *outputList)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC474" class="react-file-line html-div" data-testid="code-cell" data-line-number="474" style="position:relative">    : frontToken(<span class="pl-c1">nullptr</span>), backToken(<span class="pl-c1">nullptr</span>), files(filenames)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC475" class="react-file-line html-div" data-testid="code-cell" data-line-number="475" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC476" class="react-file-line html-div" data-testid="code-cell" data-line-number="476" style="position:relative">    StdIStream <span class="pl-smi">stream</span>(istr);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC477" class="react-file-line html-div" data-testid="code-cell" data-line-number="477" style="position:relative">    <span class="pl-c1">readfile</span>(stream,filename,outputList);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC478" class="react-file-line html-div" data-testid="code-cell" data-line-number="478" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC479" class="react-file-line html-div" data-testid="code-cell" data-line-number="479" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC480" class="react-file-line html-div" data-testid="code-cell" data-line-number="480" style="position:relative"><span class="pl-en">simplecpp::TokenList::TokenList</span>(<span class="pl-k">const</span> <span class="pl-k">unsigned</span> <span class="pl-k">char</span>* data, std::<span class="pl-c1">size_t</span> size, std::vector&lt;std::string&gt; &amp;filenames, <span class="pl-k">const</span> std::string &amp;filename, OutputList *outputList)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC481" class="react-file-line html-div" data-testid="code-cell" data-line-number="481" style="position:relative">    : frontToken(<span class="pl-c1">nullptr</span>), backToken(<span class="pl-c1">nullptr</span>), files(filenames)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC482" class="react-file-line html-div" data-testid="code-cell" data-line-number="482" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC483" class="react-file-line html-div" data-testid="code-cell" data-line-number="483" style="position:relative">    StdCharBufStream <span class="pl-smi">stream</span>(data, size);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC484" class="react-file-line html-div" data-testid="code-cell" data-line-number="484" style="position:relative">    <span class="pl-c1">readfile</span>(stream,filename,outputList);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC485" class="react-file-line html-div" data-testid="code-cell" data-line-number="485" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC486" class="react-file-line html-div" data-testid="code-cell" data-line-number="486" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC487" class="react-file-line html-div" data-testid="code-cell" data-line-number="487" style="position:relative"><span class="pl-en">simplecpp::TokenList::TokenList</span>(<span class="pl-k">const</span> <span class="pl-k">char</span>* data, std::<span class="pl-c1">size_t</span> size, std::vector&lt;std::string&gt; &amp;filenames, <span class="pl-k">const</span> std::string &amp;filename, OutputList *outputList)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC488" class="react-file-line html-div" data-testid="code-cell" data-line-number="488" style="position:relative">        : frontToken(<span class="pl-c1">nullptr</span>), backToken(<span class="pl-c1">nullptr</span>), files(filenames)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC489" class="react-file-line html-div" data-testid="code-cell" data-line-number="489" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC490" class="react-file-line html-div" data-testid="code-cell" data-line-number="490" style="position:relative">    StdCharBufStream <span class="pl-smi">stream</span>(<span class="pl-k">reinterpret_cast</span>&lt;<span class="pl-k">const</span> <span class="pl-k">unsigned</span> <span class="pl-k">char</span>*&gt;(data), size);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC491" class="react-file-line html-div" data-testid="code-cell" data-line-number="491" style="position:relative">    <span class="pl-c1">readfile</span>(stream,filename,outputList);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC492" class="react-file-line html-div" data-testid="code-cell" data-line-number="492" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC493" class="react-file-line html-div" data-testid="code-cell" data-line-number="493" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC494" class="react-file-line html-div" data-testid="code-cell" data-line-number="494" style="position:relative"><span class="pl-en">simplecpp::TokenList::TokenList</span>(<span class="pl-k">const</span> std::string &amp;filename, std::vector&lt;std::string&gt; &amp;filenames, OutputList *outputList)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC495" class="react-file-line html-div" data-testid="code-cell" data-line-number="495" style="position:relative">        : frontToken(<span class="pl-c1">nullptr</span>), backToken(<span class="pl-c1">nullptr</span>), files(filenames)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC496" class="react-file-line html-div" data-testid="code-cell" data-line-number="496" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC497" class="react-file-line html-div" data-testid="code-cell" data-line-number="497" style="position:relative">    <span class="pl-k">try</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC498" class="react-file-line html-div" data-testid="code-cell" data-line-number="498" style="position:relative">    {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC499" class="react-file-line html-div" data-testid="code-cell" data-line-number="499" style="position:relative">        FileStream <span class="pl-smi">stream</span>(filename, filenames);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC500" class="react-file-line html-div" data-testid="code-cell" data-line-number="500" style="position:relative">        <span class="pl-c1">readfile</span>(stream,filename,outputList);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC501" class="react-file-line html-div" data-testid="code-cell" data-line-number="501" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC502" class="react-file-line html-div" data-testid="code-cell" data-line-number="502" style="position:relative">    <span class="pl-k">catch</span>(<span class="pl-k">const</span> simplecpp::Output &amp; e) <span class="pl-c"><span class="pl-c">//</span> TODO handle extra type of errors</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC503" class="react-file-line html-div" data-testid="code-cell" data-line-number="503" style="position:relative">    {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC504" class="react-file-line html-div" data-testid="code-cell" data-line-number="504" style="position:relative">        outputList-&gt;<span class="pl-c1">push_back</span>(e);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC505" class="react-file-line html-div" data-testid="code-cell" data-line-number="505" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC506" class="react-file-line html-div" data-testid="code-cell" data-line-number="506" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC507" class="react-file-line html-div" data-testid="code-cell" data-line-number="507" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC508" class="react-file-line html-div" data-testid="code-cell" data-line-number="508" style="position:relative"><span class="pl-en">simplecpp::TokenList::TokenList</span>(<span class="pl-k">const</span> TokenList &amp;other) : frontToken(<span class="pl-c1">nullptr</span>), backToken(<span class="pl-c1">nullptr</span>), files(other.files)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC509" class="react-file-line html-div" data-testid="code-cell" data-line-number="509" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC510" class="react-file-line html-div" data-testid="code-cell" data-line-number="510" style="position:relative">    *<span class="pl-c1">this</span> = other;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC511" class="react-file-line html-div" data-testid="code-cell" data-line-number="511" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC512" class="react-file-line html-div" data-testid="code-cell" data-line-number="512" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC513" class="react-file-line html-div" data-testid="code-cell" data-line-number="513" style="position:relative">#<span class="pl-k">if</span> __cplusplus &gt;= 201103L</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC514" class="react-file-line html-div" data-testid="code-cell" data-line-number="514" style="position:relative"><span class="pl-en">simplecpp::TokenList::TokenList</span>(TokenList &amp;&amp;other) : frontToken(<span class="pl-c1">nullptr</span>), backToken(<span class="pl-c1">nullptr</span>), files(other.files)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC515" class="react-file-line html-div" data-testid="code-cell" data-line-number="515" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC516" class="react-file-line html-div" data-testid="code-cell" data-line-number="516" style="position:relative">    *<span class="pl-c1">this</span> = <span class="pl-c1">std::move</span>(other);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC517" class="react-file-line html-div" data-testid="code-cell" data-line-number="517" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC518" class="react-file-line html-div" data-testid="code-cell" data-line-number="518" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC519" class="react-file-line html-div" data-testid="code-cell" data-line-number="519" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC520" class="react-file-line html-div" data-testid="code-cell" data-line-number="520" style="position:relative"><span class="pl-en">simplecpp::TokenList::~TokenList</span>()</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC521" class="react-file-line html-div" data-testid="code-cell" data-line-number="521" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC522" class="react-file-line html-div" data-testid="code-cell" data-line-number="522" style="position:relative">    <span class="pl-c1">clear</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC523" class="react-file-line html-div" data-testid="code-cell" data-line-number="523" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC524" class="react-file-line html-div" data-testid="code-cell" data-line-number="524" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC525" class="react-file-line html-div" data-testid="code-cell" data-line-number="525" style="position:relative">simplecpp::TokenList &amp;simplecpp::TokenList::<span class="pl-k">operator</span>=(<span class="pl-k">const</span> TokenList &amp;other)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC526" class="react-file-line html-div" data-testid="code-cell" data-line-number="526" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC527" class="react-file-line html-div" data-testid="code-cell" data-line-number="527" style="position:relative">    <span class="pl-k">if</span> (<span class="pl-c1">this</span> != &amp;other) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC528" class="react-file-line html-div" data-testid="code-cell" data-line-number="528" style="position:relative">        <span class="pl-c1">clear</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC529" class="react-file-line html-div" data-testid="code-cell" data-line-number="529" style="position:relative">        files = other.<span class="pl-smi">files</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC530" class="react-file-line html-div" data-testid="code-cell" data-line-number="530" style="position:relative">        <span class="pl-k">for</span> (<span class="pl-k">const</span> Token *tok = other.<span class="pl-c1">cfront</span>(); tok; tok = tok-&gt;<span class="pl-smi">next</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC531" class="react-file-line html-div" data-testid="code-cell" data-line-number="531" style="position:relative">            <span class="pl-c1">push_back</span>(<span class="pl-k">new</span> <span class="pl-c1">Token</span>(*tok));</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC532" class="react-file-line html-div" data-testid="code-cell" data-line-number="532" style="position:relative">        sizeOfType = other.<span class="pl-smi">sizeOfType</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC533" class="react-file-line html-div" data-testid="code-cell" data-line-number="533" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC534" class="react-file-line html-div" data-testid="code-cell" data-line-number="534" style="position:relative">    <span class="pl-k">return</span> *<span class="pl-c1">this</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC535" class="react-file-line html-div" data-testid="code-cell" data-line-number="535" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC536" class="react-file-line html-div" data-testid="code-cell" data-line-number="536" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC537" class="react-file-line html-div" data-testid="code-cell" data-line-number="537" style="position:relative">#<span class="pl-k">if</span> __cplusplus &gt;= 201103L</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC538" class="react-file-line html-div" data-testid="code-cell" data-line-number="538" style="position:relative">simplecpp::TokenList &amp;simplecpp::TokenList::<span class="pl-k">operator</span>=(TokenList &amp;&amp;other)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC539" class="react-file-line html-div" data-testid="code-cell" data-line-number="539" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC540" class="react-file-line html-div" data-testid="code-cell" data-line-number="540" style="position:relative">    <span class="pl-k">if</span> (<span class="pl-c1">this</span> != &amp;other) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC541" class="react-file-line html-div" data-testid="code-cell" data-line-number="541" style="position:relative">        <span class="pl-c1">clear</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC542" class="react-file-line html-div" data-testid="code-cell" data-line-number="542" style="position:relative">        frontToken = other.<span class="pl-smi">frontToken</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC543" class="react-file-line html-div" data-testid="code-cell" data-line-number="543" style="position:relative">        other.<span class="pl-smi">frontToken</span> = <span class="pl-c1">nullptr</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC544" class="react-file-line html-div" data-testid="code-cell" data-line-number="544" style="position:relative">        backToken = other.<span class="pl-smi">backToken</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC545" class="react-file-line html-div" data-testid="code-cell" data-line-number="545" style="position:relative">        other.<span class="pl-smi">backToken</span> = <span class="pl-c1">nullptr</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC546" class="react-file-line html-div" data-testid="code-cell" data-line-number="546" style="position:relative">        files = other.<span class="pl-smi">files</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC547" class="react-file-line html-div" data-testid="code-cell" data-line-number="547" style="position:relative">        sizeOfType = <span class="pl-c1">std::move</span>(other.<span class="pl-smi">sizeOfType</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC548" class="react-file-line html-div" data-testid="code-cell" data-line-number="548" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC549" class="react-file-line html-div" data-testid="code-cell" data-line-number="549" style="position:relative">    <span class="pl-k">return</span> *<span class="pl-c1">this</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC550" class="react-file-line html-div" data-testid="code-cell" data-line-number="550" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC551" class="react-file-line html-div" data-testid="code-cell" data-line-number="551" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC552" class="react-file-line html-div" data-testid="code-cell" data-line-number="552" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC553" class="react-file-line html-div" data-testid="code-cell" data-line-number="553" style="position:relative"><span class="pl-k">void</span> <span class="pl-en">simplecpp::TokenList::clear</span>()</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC554" class="react-file-line html-div" data-testid="code-cell" data-line-number="554" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC555" class="react-file-line html-div" data-testid="code-cell" data-line-number="555" style="position:relative">    backToken = <span class="pl-c1">nullptr</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC556" class="react-file-line html-div" data-testid="code-cell" data-line-number="556" style="position:relative">    <span class="pl-k">while</span> (frontToken) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC557" class="react-file-line html-div" data-testid="code-cell" data-line-number="557" style="position:relative">        Token * <span class="pl-k">const</span> next = frontToken-&gt;<span class="pl-smi">next</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC558" class="react-file-line html-div" data-testid="code-cell" data-line-number="558" style="position:relative">        <span class="pl-k">delete</span> frontToken;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC559" class="react-file-line html-div" data-testid="code-cell" data-line-number="559" style="position:relative">        frontToken = next;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC560" class="react-file-line html-div" data-testid="code-cell" data-line-number="560" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC561" class="react-file-line html-div" data-testid="code-cell" data-line-number="561" style="position:relative">    sizeOfType.<span class="pl-c1">clear</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC562" class="react-file-line html-div" data-testid="code-cell" data-line-number="562" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC563" class="react-file-line html-div" data-testid="code-cell" data-line-number="563" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC564" class="react-file-line html-div" data-testid="code-cell" data-line-number="564" style="position:relative"><span class="pl-k">void</span> <span class="pl-en">simplecpp::TokenList::push_back</span>(Token *tok)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC565" class="react-file-line html-div" data-testid="code-cell" data-line-number="565" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC566" class="react-file-line html-div" data-testid="code-cell" data-line-number="566" style="position:relative">    <span class="pl-k">if</span> (!frontToken)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC567" class="react-file-line html-div" data-testid="code-cell" data-line-number="567" style="position:relative">        frontToken = tok;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC568" class="react-file-line html-div" data-testid="code-cell" data-line-number="568" style="position:relative">    <span class="pl-k">else</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC569" class="react-file-line html-div" data-testid="code-cell" data-line-number="569" style="position:relative">        backToken-&gt;<span class="pl-smi">next</span> = tok;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC570" class="react-file-line html-div" data-testid="code-cell" data-line-number="570" style="position:relative">    tok-&gt;<span class="pl-smi">previous</span> = backToken;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC571" class="react-file-line html-div" data-testid="code-cell" data-line-number="571" style="position:relative">    backToken = tok;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC572" class="react-file-line html-div" data-testid="code-cell" data-line-number="572" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC573" class="react-file-line html-div" data-testid="code-cell" data-line-number="573" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC574" class="react-file-line html-div" data-testid="code-cell" data-line-number="574" style="position:relative"><span class="pl-k">void</span> <span class="pl-en">simplecpp::TokenList::dump</span>() <span class="pl-k">const</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC575" class="react-file-line html-div" data-testid="code-cell" data-line-number="575" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC576" class="react-file-line html-div" data-testid="code-cell" data-line-number="576" style="position:relative">    std::cout &lt;&lt; <span class="pl-c1">stringify</span>() &lt;&lt; std::endl;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC577" class="react-file-line html-div" data-testid="code-cell" data-line-number="577" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC578" class="react-file-line html-div" data-testid="code-cell" data-line-number="578" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC579" class="react-file-line html-div" data-testid="code-cell" data-line-number="579" style="position:relative">std::string <span class="pl-en">simplecpp::TokenList::stringify</span>() <span class="pl-k">const</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC580" class="react-file-line html-div" data-testid="code-cell" data-line-number="580" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC581" class="react-file-line html-div" data-testid="code-cell" data-line-number="581" style="position:relative">    std::ostringstream ret;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC582" class="react-file-line html-div" data-testid="code-cell" data-line-number="582" style="position:relative">    Location <span class="pl-smi">loc</span>(files);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC583" class="react-file-line html-div" data-testid="code-cell" data-line-number="583" style="position:relative">    <span class="pl-k">for</span> (<span class="pl-k">const</span> Token *tok = <span class="pl-c1">cfront</span>(); tok; tok = tok-&gt;<span class="pl-smi">next</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC584" class="react-file-line html-div" data-testid="code-cell" data-line-number="584" style="position:relative">        <span class="pl-k">if</span> (tok-&gt;<span class="pl-smi">location</span>.<span class="pl-smi">line</span> &lt; loc.<span class="pl-smi">line</span> || tok-&gt;<span class="pl-smi">location</span>.<span class="pl-smi">fileIndex</span> != loc.<span class="pl-smi">fileIndex</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC585" class="react-file-line html-div" data-testid="code-cell" data-line-number="585" style="position:relative">            ret &lt;&lt; <span class="pl-s"><span class="pl-pds">&quot;</span><span class="pl-cce">\n</span>#line <span class="pl-pds">&quot;</span></span> &lt;&lt; tok-&gt;<span class="pl-smi">location</span>.<span class="pl-smi">line</span> &lt;&lt; <span class="pl-s"><span class="pl-pds">&quot;</span> <span class="pl-cce">\&quot;</span><span class="pl-pds">&quot;</span></span> &lt;&lt; tok-&gt;<span class="pl-smi">location</span>.<span class="pl-c1">file</span>() &lt;&lt; <span class="pl-s"><span class="pl-pds">&quot;</span><span class="pl-cce">\&quot;\n</span><span class="pl-pds">&quot;</span></span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC586" class="react-file-line html-div" data-testid="code-cell" data-line-number="586" style="position:relative">            loc = tok-&gt;<span class="pl-smi">location</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC587" class="react-file-line html-div" data-testid="code-cell" data-line-number="587" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC588" class="react-file-line html-div" data-testid="code-cell" data-line-number="588" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC589" class="react-file-line html-div" data-testid="code-cell" data-line-number="589" style="position:relative">        <span class="pl-k">while</span> (tok-&gt;<span class="pl-smi">location</span>.<span class="pl-smi">line</span> &gt; loc.<span class="pl-smi">line</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC590" class="react-file-line html-div" data-testid="code-cell" data-line-number="590" style="position:relative">            ret &lt;&lt; <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\n</span><span class="pl-pds">&#039;</span></span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC591" class="react-file-line html-div" data-testid="code-cell" data-line-number="591" style="position:relative">            loc.<span class="pl-smi">line</span>++;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC592" class="react-file-line html-div" data-testid="code-cell" data-line-number="592" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC593" class="react-file-line html-div" data-testid="code-cell" data-line-number="593" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC594" class="react-file-line html-div" data-testid="code-cell" data-line-number="594" style="position:relative">        <span class="pl-k">if</span> (<span class="pl-c1">sameline</span>(tok-&gt;<span class="pl-smi">previous</span>, tok))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC595" class="react-file-line html-div" data-testid="code-cell" data-line-number="595" style="position:relative">            ret &lt;&lt; <span class="pl-s"><span class="pl-pds">&#039;</span> <span class="pl-pds">&#039;</span></span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC596" class="react-file-line html-div" data-testid="code-cell" data-line-number="596" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC597" class="react-file-line html-div" data-testid="code-cell" data-line-number="597" style="position:relative">        ret &lt;&lt; tok-&gt;<span class="pl-c1">str</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC598" class="react-file-line html-div" data-testid="code-cell" data-line-number="598" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC599" class="react-file-line html-div" data-testid="code-cell" data-line-number="599" style="position:relative">        loc.<span class="pl-c1">adjust</span>(tok-&gt;<span class="pl-c1">str</span>());</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC600" class="react-file-line html-div" data-testid="code-cell" data-line-number="600" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC601" class="react-file-line html-div" data-testid="code-cell" data-line-number="601" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC602" class="react-file-line html-div" data-testid="code-cell" data-line-number="602" style="position:relative">    <span class="pl-k">return</span> ret.<span class="pl-c1">str</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC603" class="react-file-line html-div" data-testid="code-cell" data-line-number="603" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC604" class="react-file-line html-div" data-testid="code-cell" data-line-number="604" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC605" class="react-file-line html-div" data-testid="code-cell" data-line-number="605" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">bool</span> <span class="pl-en">isNameChar</span>(<span class="pl-k">unsigned</span> <span class="pl-k">char</span> ch)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC606" class="react-file-line html-div" data-testid="code-cell" data-line-number="606" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC607" class="react-file-line html-div" data-testid="code-cell" data-line-number="607" style="position:relative">    <span class="pl-k">return</span> <span class="pl-c1">std::isalnum</span>(ch) || ch == <span class="pl-s"><span class="pl-pds">&#039;</span>_<span class="pl-pds">&#039;</span></span> || ch == <span class="pl-s"><span class="pl-pds">&#039;</span>$<span class="pl-pds">&#039;</span></span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC608" class="react-file-line html-div" data-testid="code-cell" data-line-number="608" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC609" class="react-file-line html-div" data-testid="code-cell" data-line-number="609" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC610" class="react-file-line html-div" data-testid="code-cell" data-line-number="610" style="position:relative"><span class="pl-k">static</span> std::string <span class="pl-en">escapeString</span>(<span class="pl-k">const</span> std::string &amp;str)</div></div></div><div class="child-of-line-609  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC611" class="react-file-line html-div" data-testid="code-cell" data-line-number="611" style="position:relative">{</div></div></div><div class="child-of-line-609  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC612" class="react-file-line html-div" data-testid="code-cell" data-line-number="612" style="position:relative">    std::ostringstream ostr;</div></div></div><div class="child-of-line-609  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC613" class="react-file-line html-div" data-testid="code-cell" data-line-number="613" style="position:relative">    ostr &lt;&lt; <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\&quot;</span><span class="pl-pds">&#039;</span></span>;</div></div></div><div class="child-of-line-609  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC614" class="react-file-line html-div" data-testid="code-cell" data-line-number="614" style="position:relative">    <span class="pl-k">for</span> (std::<span class="pl-c1">size_t</span> i = <span class="pl-c1">1U</span>; i &lt; str.<span class="pl-c1">size</span>() - <span class="pl-c1">1</span>; ++i) {</div></div></div><div class="child-of-line-609  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC615" class="react-file-line html-div" data-testid="code-cell" data-line-number="615" style="position:relative">        <span class="pl-k">const</span> <span class="pl-k">char</span> c = str[i];</div></div></div><div class="child-of-line-609  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC616" class="react-file-line html-div" data-testid="code-cell" data-line-number="616" style="position:relative">        <span class="pl-k">if</span> (c == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\\</span><span class="pl-pds">&#039;</span></span> || c == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\&quot;</span><span class="pl-pds">&#039;</span></span> || c == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\&#039;</span><span class="pl-pds">&#039;</span></span>)</div></div></div><div class="child-of-line-609  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC617" class="react-file-line html-div" data-testid="code-cell" data-line-number="617" style="position:relative">            ostr &lt;&lt; <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\\</span><span class="pl-pds">&#039;</span></span>;</div></div></div><div class="child-of-line-609  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC618" class="react-file-line html-div" data-testid="code-cell" data-line-number="618" style="position:relative">        ostr &lt;&lt; c;</div></div></div><div class="child-of-line-609  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC619" class="react-file-line html-div" data-testid="code-cell" data-line-number="619" style="position:relative">    }</div></div></div><div class="child-of-line-609  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC620" class="react-file-line html-div" data-testid="code-cell" data-line-number="620" style="position:relative">    ostr &lt;&lt; <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\&quot;</span><span class="pl-pds">&#039;</span></span>;</div></div></div><div class="child-of-line-609  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC621" class="react-file-line html-div" data-testid="code-cell" data-line-number="621" style="position:relative">    <span class="pl-k">return</span> ostr.<span class="pl-c1">str</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC622" class="react-file-line html-div" data-testid="code-cell" data-line-number="622" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC623" class="react-file-line html-div" data-testid="code-cell" data-line-number="623" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC624" class="react-file-line html-div" data-testid="code-cell" data-line-number="624" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">void</span> <span class="pl-en">portabilityBackslash</span>(simplecpp::OutputList *outputList, <span class="pl-k">const</span> std::vector&lt;std::string&gt; &amp;files, <span class="pl-k">const</span> simplecpp::Location &amp;location)</div></div></div><div class="child-of-line-623  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC625" class="react-file-line html-div" data-testid="code-cell" data-line-number="625" style="position:relative">{</div></div></div><div class="child-of-line-623  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC626" class="react-file-line html-div" data-testid="code-cell" data-line-number="626" style="position:relative">    <span class="pl-k">if</span> (!outputList)</div></div></div><div class="child-of-line-623  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC627" class="react-file-line html-div" data-testid="code-cell" data-line-number="627" style="position:relative">        <span class="pl-k">return</span>;</div></div></div><div class="child-of-line-623  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC628" class="react-file-line html-div" data-testid="code-cell" data-line-number="628" style="position:relative">    simplecpp::Output <span class="pl-smi">err</span>(files);</div></div></div><div class="child-of-line-623  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC629" class="react-file-line html-div" data-testid="code-cell" data-line-number="629" style="position:relative">    err.<span class="pl-smi">type</span> = simplecpp::Output::<span class="pl-c1">PORTABILITY_BACKSLASH</span>;</div></div></div><div class="child-of-line-623  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC630" class="react-file-line html-div" data-testid="code-cell" data-line-number="630" style="position:relative">    err.<span class="pl-smi">location</span> = location;</div></div></div><div class="child-of-line-623  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC631" class="react-file-line html-div" data-testid="code-cell" data-line-number="631" style="position:relative">    err.<span class="pl-smi">msg</span> = <span class="pl-s"><span class="pl-pds">&quot;</span>Combination &#039;backslash space newline&#039; is not portable.<span class="pl-pds">&quot;</span></span>;</div></div></div><div class="child-of-line-623  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC632" class="react-file-line html-div" data-testid="code-cell" data-line-number="632" style="position:relative">    outputList-&gt;<span class="pl-c1">push_back</span>(err);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC633" class="react-file-line html-div" data-testid="code-cell" data-line-number="633" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC634" class="react-file-line html-div" data-testid="code-cell" data-line-number="634" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC635" class="react-file-line html-div" data-testid="code-cell" data-line-number="635" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">bool</span> <span class="pl-en">isStringLiteralPrefix</span>(<span class="pl-k">const</span> std::string &amp;str)</div></div></div><div class="child-of-line-634  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC636" class="react-file-line html-div" data-testid="code-cell" data-line-number="636" style="position:relative">{</div></div></div><div class="child-of-line-634  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC637" class="react-file-line html-div" data-testid="code-cell" data-line-number="637" style="position:relative">    <span class="pl-k">return</span> str == <span class="pl-s"><span class="pl-pds">&quot;</span>u<span class="pl-pds">&quot;</span></span> || str == <span class="pl-s"><span class="pl-pds">&quot;</span>U<span class="pl-pds">&quot;</span></span> || str == <span class="pl-s"><span class="pl-pds">&quot;</span>L<span class="pl-pds">&quot;</span></span> || str == <span class="pl-s"><span class="pl-pds">&quot;</span>u8<span class="pl-pds">&quot;</span></span> ||</div></div></div><div class="child-of-line-634  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC638" class="react-file-line html-div" data-testid="code-cell" data-line-number="638" style="position:relative">           str == <span class="pl-s"><span class="pl-pds">&quot;</span>R<span class="pl-pds">&quot;</span></span> || str == <span class="pl-s"><span class="pl-pds">&quot;</span>uR<span class="pl-pds">&quot;</span></span> || str == <span class="pl-s"><span class="pl-pds">&quot;</span>UR<span class="pl-pds">&quot;</span></span> || str == <span class="pl-s"><span class="pl-pds">&quot;</span>LR<span class="pl-pds">&quot;</span></span> || str == <span class="pl-s"><span class="pl-pds">&quot;</span>u8R<span class="pl-pds">&quot;</span></span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC639" class="react-file-line html-div" data-testid="code-cell" data-line-number="639" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC640" class="react-file-line html-div" data-testid="code-cell" data-line-number="640" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC641" class="react-file-line html-div" data-testid="code-cell" data-line-number="641" style="position:relative"><span class="pl-k">void</span> <span class="pl-en">simplecpp::TokenList::lineDirective</span>(<span class="pl-k">unsigned</span> <span class="pl-k">int</span> fileIndex, <span class="pl-k">unsigned</span> <span class="pl-k">int</span> line, Location *location)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC642" class="react-file-line html-div" data-testid="code-cell" data-line-number="642" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC643" class="react-file-line html-div" data-testid="code-cell" data-line-number="643" style="position:relative">    <span class="pl-k">if</span> (fileIndex != location-&gt;<span class="pl-smi">fileIndex</span> || line &gt;= location-&gt;<span class="pl-smi">line</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC644" class="react-file-line html-div" data-testid="code-cell" data-line-number="644" style="position:relative">        location-&gt;<span class="pl-smi">fileIndex</span> = fileIndex;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC645" class="react-file-line html-div" data-testid="code-cell" data-line-number="645" style="position:relative">        location-&gt;<span class="pl-smi">line</span> = line;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC646" class="react-file-line html-div" data-testid="code-cell" data-line-number="646" style="position:relative">        <span class="pl-k">return</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC647" class="react-file-line html-div" data-testid="code-cell" data-line-number="647" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC648" class="react-file-line html-div" data-testid="code-cell" data-line-number="648" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC649" class="react-file-line html-div" data-testid="code-cell" data-line-number="649" style="position:relative">    <span class="pl-k">if</span> (line + <span class="pl-c1">2</span> &gt;= location-&gt;<span class="pl-smi">line</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC650" class="react-file-line html-div" data-testid="code-cell" data-line-number="650" style="position:relative">        location-&gt;<span class="pl-smi">line</span> = line;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC651" class="react-file-line html-div" data-testid="code-cell" data-line-number="651" style="position:relative">        <span class="pl-k">while</span> (<span class="pl-c1">cback</span>()-&gt;<span class="pl-smi">op</span> != <span class="pl-s"><span class="pl-pds">&#039;</span>#<span class="pl-pds">&#039;</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC652" class="react-file-line html-div" data-testid="code-cell" data-line-number="652" style="position:relative">            <span class="pl-c1">deleteToken</span>(<span class="pl-c1">back</span>());</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC653" class="react-file-line html-div" data-testid="code-cell" data-line-number="653" style="position:relative">        <span class="pl-c1">deleteToken</span>(<span class="pl-c1">back</span>());</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC654" class="react-file-line html-div" data-testid="code-cell" data-line-number="654" style="position:relative">        <span class="pl-k">return</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC655" class="react-file-line html-div" data-testid="code-cell" data-line-number="655" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC656" class="react-file-line html-div" data-testid="code-cell" data-line-number="656" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC657" class="react-file-line html-div" data-testid="code-cell" data-line-number="657" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC658" class="react-file-line html-div" data-testid="code-cell" data-line-number="658" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">const</span> std::string <span class="pl-en">COMMENT_END</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>*/<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC659" class="react-file-line html-div" data-testid="code-cell" data-line-number="659" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC660" class="react-file-line html-div" data-testid="code-cell" data-line-number="660" style="position:relative"><span class="pl-k">void</span> <span class="pl-en">simplecpp::TokenList::readfile</span>(Stream &amp;stream, <span class="pl-k">const</span> std::string &amp;filename, OutputList *outputList)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC661" class="react-file-line html-div" data-testid="code-cell" data-line-number="661" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC662" class="react-file-line html-div" data-testid="code-cell" data-line-number="662" style="position:relative">    std::stack&lt;simplecpp::Location&gt; loc;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC663" class="react-file-line html-div" data-testid="code-cell" data-line-number="663" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC664" class="react-file-line html-div" data-testid="code-cell" data-line-number="664" style="position:relative">    <span class="pl-k">unsigned</span> <span class="pl-k">int</span> multiline = <span class="pl-c1">0U</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC665" class="react-file-line html-div" data-testid="code-cell" data-line-number="665" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC666" class="react-file-line html-div" data-testid="code-cell" data-line-number="666" style="position:relative">    <span class="pl-k">const</span> Token *oldLastToken = <span class="pl-c1">nullptr</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC667" class="react-file-line html-div" data-testid="code-cell" data-line-number="667" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC668" class="react-file-line html-div" data-testid="code-cell" data-line-number="668" style="position:relative">    Location <span class="pl-smi">location</span>(files);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC669" class="react-file-line html-div" data-testid="code-cell" data-line-number="669" style="position:relative">    location.<span class="pl-smi">fileIndex</span> = <span class="pl-c1">fileIndex</span>(filename);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC670" class="react-file-line html-div" data-testid="code-cell" data-line-number="670" style="position:relative">    location.<span class="pl-smi">line</span> = <span class="pl-c1">1U</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC671" class="react-file-line html-div" data-testid="code-cell" data-line-number="671" style="position:relative">    location.<span class="pl-smi">col</span>  = <span class="pl-c1">1U</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC672" class="react-file-line html-div" data-testid="code-cell" data-line-number="672" style="position:relative">    <span class="pl-k">while</span> (stream.<span class="pl-c1">good</span>()) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC673" class="react-file-line html-div" data-testid="code-cell" data-line-number="673" style="position:relative">        <span class="pl-k">unsigned</span> <span class="pl-k">char</span> ch = stream.<span class="pl-c1">readChar</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC674" class="react-file-line html-div" data-testid="code-cell" data-line-number="674" style="position:relative">        <span class="pl-k">if</span> (!stream.<span class="pl-c1">good</span>())</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC675" class="react-file-line html-div" data-testid="code-cell" data-line-number="675" style="position:relative">            <span class="pl-k">break</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC676" class="react-file-line html-div" data-testid="code-cell" data-line-number="676" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC677" class="react-file-line html-div" data-testid="code-cell" data-line-number="677" style="position:relative">        <span class="pl-k">if</span> (ch &gt;= <span class="pl-c1">0x80</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC678" class="react-file-line html-div" data-testid="code-cell" data-line-number="678" style="position:relative">            <span class="pl-k">if</span> (outputList) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC679" class="react-file-line html-div" data-testid="code-cell" data-line-number="679" style="position:relative">                simplecpp::Output <span class="pl-smi">err</span>(files);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC680" class="react-file-line html-div" data-testid="code-cell" data-line-number="680" style="position:relative">                err.<span class="pl-smi">type</span> = simplecpp::Output::<span class="pl-c1">UNHANDLED_CHAR_ERROR</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC681" class="react-file-line html-div" data-testid="code-cell" data-line-number="681" style="position:relative">                err.<span class="pl-smi">location</span> = location;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC682" class="react-file-line html-div" data-testid="code-cell" data-line-number="682" style="position:relative">                std::ostringstream s;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC683" class="react-file-line html-div" data-testid="code-cell" data-line-number="683" style="position:relative">                s &lt;&lt; <span class="pl-k">static_cast</span>&lt;<span class="pl-k">int</span>&gt;(ch);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC684" class="react-file-line html-div" data-testid="code-cell" data-line-number="684" style="position:relative">                err.<span class="pl-smi">msg</span> = <span class="pl-s"><span class="pl-pds">&quot;</span>The code contains unhandled character(s) (character code=<span class="pl-pds">&quot;</span></span> + s.<span class="pl-c1">str</span>() + <span class="pl-s"><span class="pl-pds">&quot;</span>). Neither unicode nor extended ascii is supported.<span class="pl-pds">&quot;</span></span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC685" class="react-file-line html-div" data-testid="code-cell" data-line-number="685" style="position:relative">                outputList-&gt;<span class="pl-c1">push_back</span>(err);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC686" class="react-file-line html-div" data-testid="code-cell" data-line-number="686" style="position:relative">            }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC687" class="react-file-line html-div" data-testid="code-cell" data-line-number="687" style="position:relative">            <span class="pl-c1">clear</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC688" class="react-file-line html-div" data-testid="code-cell" data-line-number="688" style="position:relative">            <span class="pl-k">return</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC689" class="react-file-line html-div" data-testid="code-cell" data-line-number="689" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC690" class="react-file-line html-div" data-testid="code-cell" data-line-number="690" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC691" class="react-file-line html-div" data-testid="code-cell" data-line-number="691" style="position:relative">        <span class="pl-k">if</span> (ch == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\n</span><span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC692" class="react-file-line html-div" data-testid="code-cell" data-line-number="692" style="position:relative">            <span class="pl-k">if</span> (<span class="pl-c1">cback</span>() &amp;&amp; <span class="pl-c1">cback</span>()-&gt;<span class="pl-smi">op</span> == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\\</span><span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC693" class="react-file-line html-div" data-testid="code-cell" data-line-number="693" style="position:relative">                <span class="pl-k">if</span> (location.<span class="pl-smi">col</span> &gt; <span class="pl-c1">cback</span>()-&gt;<span class="pl-smi">location</span>.<span class="pl-smi">col</span> + <span class="pl-c1">1U</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC694" class="react-file-line html-div" data-testid="code-cell" data-line-number="694" style="position:relative">                    <span class="pl-c1">portabilityBackslash</span>(outputList, files, <span class="pl-c1">cback</span>()-&gt;<span class="pl-smi">location</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC695" class="react-file-line html-div" data-testid="code-cell" data-line-number="695" style="position:relative">                ++multiline;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC696" class="react-file-line html-div" data-testid="code-cell" data-line-number="696" style="position:relative">                <span class="pl-c1">deleteToken</span>(<span class="pl-c1">back</span>());</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC697" class="react-file-line html-div" data-testid="code-cell" data-line-number="697" style="position:relative">            } <span class="pl-k">else</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC698" class="react-file-line html-div" data-testid="code-cell" data-line-number="698" style="position:relative">                location.<span class="pl-smi">line</span> += multiline + <span class="pl-c1">1</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC699" class="react-file-line html-div" data-testid="code-cell" data-line-number="699" style="position:relative">                multiline = <span class="pl-c1">0U</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC700" class="react-file-line html-div" data-testid="code-cell" data-line-number="700" style="position:relative">            }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC701" class="react-file-line html-div" data-testid="code-cell" data-line-number="701" style="position:relative">            <span class="pl-k">if</span> (!multiline)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC702" class="react-file-line html-div" data-testid="code-cell" data-line-number="702" style="position:relative">                location.<span class="pl-smi">col</span> = <span class="pl-c1">1</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC703" class="react-file-line html-div" data-testid="code-cell" data-line-number="703" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC704" class="react-file-line html-div" data-testid="code-cell" data-line-number="704" style="position:relative">            <span class="pl-k">if</span> (oldLastToken != <span class="pl-c1">cback</span>()) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC705" class="react-file-line html-div" data-testid="code-cell" data-line-number="705" style="position:relative">                oldLastToken = <span class="pl-c1">cback</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC706" class="react-file-line html-div" data-testid="code-cell" data-line-number="706" style="position:relative">                <span class="pl-k">if</span> (!<span class="pl-c1">isLastLinePreprocessor</span>())</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC707" class="react-file-line html-div" data-testid="code-cell" data-line-number="707" style="position:relative">                    <span class="pl-k">continue</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC708" class="react-file-line html-div" data-testid="code-cell" data-line-number="708" style="position:relative">                <span class="pl-k">const</span> std::string <span class="pl-smi">lastline</span>(<span class="pl-c1">lastLine</span>());</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC709" class="react-file-line html-div" data-testid="code-cell" data-line-number="709" style="position:relative">                <span class="pl-k">if</span> (lastline == <span class="pl-s"><span class="pl-pds">&quot;</span># file %str%<span class="pl-pds">&quot;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC710" class="react-file-line html-div" data-testid="code-cell" data-line-number="710" style="position:relative">                    <span class="pl-k">const</span> Token *strtok = <span class="pl-c1">cback</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC711" class="react-file-line html-div" data-testid="code-cell" data-line-number="711" style="position:relative">                    <span class="pl-k">while</span> (strtok-&gt;<span class="pl-smi">comment</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC712" class="react-file-line html-div" data-testid="code-cell" data-line-number="712" style="position:relative">                        strtok = strtok-&gt;<span class="pl-smi">previous</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC713" class="react-file-line html-div" data-testid="code-cell" data-line-number="713" style="position:relative">                    loc.<span class="pl-c1">push</span>(location);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC714" class="react-file-line html-div" data-testid="code-cell" data-line-number="714" style="position:relative">                    location.<span class="pl-smi">fileIndex</span> = <span class="pl-c1">fileIndex</span>(strtok-&gt;<span class="pl-c1">str</span>().<span class="pl-c1">substr</span>(<span class="pl-c1">1U</span>, strtok-&gt;<span class="pl-c1">str</span>().<span class="pl-c1">size</span>() - <span class="pl-c1">2U</span>));</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC715" class="react-file-line html-div" data-testid="code-cell" data-line-number="715" style="position:relative">                    location.<span class="pl-smi">line</span> = <span class="pl-c1">1U</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC716" class="react-file-line html-div" data-testid="code-cell" data-line-number="716" style="position:relative">                } <span class="pl-k">else</span> <span class="pl-k">if</span> (lastline == <span class="pl-s"><span class="pl-pds">&quot;</span># line %num%<span class="pl-pds">&quot;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC717" class="react-file-line html-div" data-testid="code-cell" data-line-number="717" style="position:relative">                    <span class="pl-k">const</span> Token *numtok = <span class="pl-c1">cback</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC718" class="react-file-line html-div" data-testid="code-cell" data-line-number="718" style="position:relative">                    <span class="pl-k">while</span> (numtok-&gt;<span class="pl-smi">comment</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC719" class="react-file-line html-div" data-testid="code-cell" data-line-number="719" style="position:relative">                        numtok = numtok-&gt;<span class="pl-smi">previous</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC720" class="react-file-line html-div" data-testid="code-cell" data-line-number="720" style="position:relative">                    <span class="pl-c1">lineDirective</span>(location.<span class="pl-smi">fileIndex</span>, <span class="pl-c1">std::atol</span>(numtok-&gt;<span class="pl-c1">str</span>().<span class="pl-c1">c_str</span>()), &amp;location);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC721" class="react-file-line html-div" data-testid="code-cell" data-line-number="721" style="position:relative">                } <span class="pl-k">else</span> <span class="pl-k">if</span> (lastline == <span class="pl-s"><span class="pl-pds">&quot;</span># %num% %str%<span class="pl-pds">&quot;</span></span> || lastline == <span class="pl-s"><span class="pl-pds">&quot;</span># line %num% %str%<span class="pl-pds">&quot;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC722" class="react-file-line html-div" data-testid="code-cell" data-line-number="722" style="position:relative">                    <span class="pl-k">const</span> Token *strtok = <span class="pl-c1">cback</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC723" class="react-file-line html-div" data-testid="code-cell" data-line-number="723" style="position:relative">                    <span class="pl-k">while</span> (strtok-&gt;<span class="pl-smi">comment</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC724" class="react-file-line html-div" data-testid="code-cell" data-line-number="724" style="position:relative">                        strtok = strtok-&gt;<span class="pl-smi">previous</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC725" class="react-file-line html-div" data-testid="code-cell" data-line-number="725" style="position:relative">                    <span class="pl-k">const</span> Token *numtok = strtok-&gt;<span class="pl-smi">previous</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC726" class="react-file-line html-div" data-testid="code-cell" data-line-number="726" style="position:relative">                    <span class="pl-k">while</span> (numtok-&gt;<span class="pl-smi">comment</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC727" class="react-file-line html-div" data-testid="code-cell" data-line-number="727" style="position:relative">                        numtok = numtok-&gt;<span class="pl-smi">previous</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC728" class="react-file-line html-div" data-testid="code-cell" data-line-number="728" style="position:relative">                    <span class="pl-c1">lineDirective</span>(<span class="pl-c1">fileIndex</span>(<span class="pl-c1">replaceAll</span>(strtok-&gt;<span class="pl-c1">str</span>().<span class="pl-c1">substr</span>(<span class="pl-c1">1U</span>, strtok-&gt;<span class="pl-c1">str</span>().<span class="pl-c1">size</span>() - <span class="pl-c1">2U</span>),<span class="pl-s"><span class="pl-pds">&quot;</span><span class="pl-cce">\\\\</span><span class="pl-pds">&quot;</span></span>,<span class="pl-s"><span class="pl-pds">&quot;</span><span class="pl-cce">\\</span><span class="pl-pds">&quot;</span></span>)),</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC729" class="react-file-line html-div" data-testid="code-cell" data-line-number="729" style="position:relative">                                  <span class="pl-c1">std::atol</span>(numtok-&gt;<span class="pl-c1">str</span>().<span class="pl-c1">c_str</span>()), &amp;location);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC730" class="react-file-line html-div" data-testid="code-cell" data-line-number="730" style="position:relative">                }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC731" class="react-file-line html-div" data-testid="code-cell" data-line-number="731" style="position:relative">                <span class="pl-c"><span class="pl-c">//</span> #endfile</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC732" class="react-file-line html-div" data-testid="code-cell" data-line-number="732" style="position:relative">                <span class="pl-k">else</span> <span class="pl-k">if</span> (lastline == <span class="pl-s"><span class="pl-pds">&quot;</span># endfile<span class="pl-pds">&quot;</span></span> &amp;&amp; !loc.<span class="pl-c1">empty</span>()) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC733" class="react-file-line html-div" data-testid="code-cell" data-line-number="733" style="position:relative">                    location = loc.<span class="pl-c1">top</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC734" class="react-file-line html-div" data-testid="code-cell" data-line-number="734" style="position:relative">                    loc.<span class="pl-c1">pop</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC735" class="react-file-line html-div" data-testid="code-cell" data-line-number="735" style="position:relative">                }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC736" class="react-file-line html-div" data-testid="code-cell" data-line-number="736" style="position:relative">            }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC737" class="react-file-line html-div" data-testid="code-cell" data-line-number="737" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC738" class="react-file-line html-div" data-testid="code-cell" data-line-number="738" style="position:relative">            <span class="pl-k">continue</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC739" class="react-file-line html-div" data-testid="code-cell" data-line-number="739" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC740" class="react-file-line html-div" data-testid="code-cell" data-line-number="740" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC741" class="react-file-line html-div" data-testid="code-cell" data-line-number="741" style="position:relative">        <span class="pl-k">if</span> (ch &lt;= <span class="pl-s"><span class="pl-pds">&#039;</span> <span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC742" class="react-file-line html-div" data-testid="code-cell" data-line-number="742" style="position:relative">            location.<span class="pl-smi">col</span>++;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC743" class="react-file-line html-div" data-testid="code-cell" data-line-number="743" style="position:relative">            <span class="pl-k">continue</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC744" class="react-file-line html-div" data-testid="code-cell" data-line-number="744" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC745" class="react-file-line html-div" data-testid="code-cell" data-line-number="745" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC746" class="react-file-line html-div" data-testid="code-cell" data-line-number="746" style="position:relative">        TokenString currentToken;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC747" class="react-file-line html-div" data-testid="code-cell" data-line-number="747" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC748" class="react-file-line html-div" data-testid="code-cell" data-line-number="748" style="position:relative">        <span class="pl-k">if</span> (<span class="pl-c1">cback</span>() &amp;&amp; <span class="pl-c1">cback</span>()-&gt;<span class="pl-smi">location</span>.<span class="pl-smi">line</span> == location.<span class="pl-smi">line</span> &amp;&amp; <span class="pl-c1">cback</span>()-&gt;<span class="pl-smi">previous</span> &amp;&amp; <span class="pl-c1">cback</span>()-&gt;<span class="pl-smi">previous</span>-&gt;<span class="pl-smi">op</span> == <span class="pl-s"><span class="pl-pds">&#039;</span>#<span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC749" class="react-file-line html-div" data-testid="code-cell" data-line-number="749" style="position:relative">            <span class="pl-k">const</span> Token* <span class="pl-k">const</span> llTok = <span class="pl-c1">lastLineTok</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC750" class="react-file-line html-div" data-testid="code-cell" data-line-number="750" style="position:relative">            <span class="pl-k">if</span> (llTok &amp;&amp; llTok-&gt;<span class="pl-smi">op</span> == <span class="pl-s"><span class="pl-pds">&#039;</span>#<span class="pl-pds">&#039;</span></span> &amp;&amp; llTok-&gt;<span class="pl-smi">next</span> &amp;&amp; (llTok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-c1">str</span>() == <span class="pl-s"><span class="pl-pds">&quot;</span>error<span class="pl-pds">&quot;</span></span> || llTok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-c1">str</span>() == <span class="pl-s"><span class="pl-pds">&quot;</span>warning<span class="pl-pds">&quot;</span></span>)) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC751" class="react-file-line html-div" data-testid="code-cell" data-line-number="751" style="position:relative">                <span class="pl-k">char</span> prev = <span class="pl-s"><span class="pl-pds">&#039;</span> <span class="pl-pds">&#039;</span></span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC752" class="react-file-line html-div" data-testid="code-cell" data-line-number="752" style="position:relative">                <span class="pl-k">while</span> (stream.<span class="pl-c1">good</span>() &amp;&amp; (prev == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\\</span><span class="pl-pds">&#039;</span></span> || (ch != <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\r</span><span class="pl-pds">&#039;</span></span> &amp;&amp; ch != <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\n</span><span class="pl-pds">&#039;</span></span>))) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC753" class="react-file-line html-div" data-testid="code-cell" data-line-number="753" style="position:relative">                    currentToken += ch;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC754" class="react-file-line html-div" data-testid="code-cell" data-line-number="754" style="position:relative">                    prev = ch;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC755" class="react-file-line html-div" data-testid="code-cell" data-line-number="755" style="position:relative">                    ch = stream.<span class="pl-c1">readChar</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC756" class="react-file-line html-div" data-testid="code-cell" data-line-number="756" style="position:relative">                }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC757" class="react-file-line html-div" data-testid="code-cell" data-line-number="757" style="position:relative">                stream.<span class="pl-c1">ungetChar</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC758" class="react-file-line html-div" data-testid="code-cell" data-line-number="758" style="position:relative">                <span class="pl-c1">push_back</span>(<span class="pl-k">new</span> <span class="pl-c1">Token</span>(currentToken, location));</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC759" class="react-file-line html-div" data-testid="code-cell" data-line-number="759" style="position:relative">                location.<span class="pl-c1">adjust</span>(currentToken);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC760" class="react-file-line html-div" data-testid="code-cell" data-line-number="760" style="position:relative">                <span class="pl-k">continue</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC761" class="react-file-line html-div" data-testid="code-cell" data-line-number="761" style="position:relative">            }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC762" class="react-file-line html-div" data-testid="code-cell" data-line-number="762" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC763" class="react-file-line html-div" data-testid="code-cell" data-line-number="763" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC764" class="react-file-line html-div" data-testid="code-cell" data-line-number="764" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> number or name</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC765" class="react-file-line html-div" data-testid="code-cell" data-line-number="765" style="position:relative">        <span class="pl-k">if</span> (<span class="pl-c1">isNameChar</span>(ch)) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC766" class="react-file-line html-div" data-testid="code-cell" data-line-number="766" style="position:relative">            <span class="pl-k">const</span> <span class="pl-k">bool</span> num = <span class="pl-c1">std::isdigit</span>(ch);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC767" class="react-file-line html-div" data-testid="code-cell" data-line-number="767" style="position:relative">            <span class="pl-k">while</span> (stream.<span class="pl-c1">good</span>() &amp;&amp; <span class="pl-c1">isNameChar</span>(ch)) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC768" class="react-file-line html-div" data-testid="code-cell" data-line-number="768" style="position:relative">                currentToken += ch;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC769" class="react-file-line html-div" data-testid="code-cell" data-line-number="769" style="position:relative">                ch = stream.<span class="pl-c1">readChar</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC770" class="react-file-line html-div" data-testid="code-cell" data-line-number="770" style="position:relative">                <span class="pl-k">if</span> (num &amp;&amp; ch==<span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\&#039;</span><span class="pl-pds">&#039;</span></span> &amp;&amp; <span class="pl-c1">isNameChar</span>(stream.<span class="pl-c1">peekChar</span>()))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC771" class="react-file-line html-div" data-testid="code-cell" data-line-number="771" style="position:relative">                    ch = stream.<span class="pl-c1">readChar</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC772" class="react-file-line html-div" data-testid="code-cell" data-line-number="772" style="position:relative">            }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC773" class="react-file-line html-div" data-testid="code-cell" data-line-number="773" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC774" class="react-file-line html-div" data-testid="code-cell" data-line-number="774" style="position:relative">            stream.<span class="pl-c1">ungetChar</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC775" class="react-file-line html-div" data-testid="code-cell" data-line-number="775" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC776" class="react-file-line html-div" data-testid="code-cell" data-line-number="776" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC777" class="react-file-line html-div" data-testid="code-cell" data-line-number="777" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> comment</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC778" class="react-file-line html-div" data-testid="code-cell" data-line-number="778" style="position:relative">        <span class="pl-k">else</span> <span class="pl-k">if</span> (ch == <span class="pl-s"><span class="pl-pds">&#039;</span>/<span class="pl-pds">&#039;</span></span> &amp;&amp; stream.<span class="pl-c1">peekChar</span>() == <span class="pl-s"><span class="pl-pds">&#039;</span>/<span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC779" class="react-file-line html-div" data-testid="code-cell" data-line-number="779" style="position:relative">            <span class="pl-k">while</span> (stream.<span class="pl-c1">good</span>() &amp;&amp; ch != <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\r</span><span class="pl-pds">&#039;</span></span> &amp;&amp; ch != <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\n</span><span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC780" class="react-file-line html-div" data-testid="code-cell" data-line-number="780" style="position:relative">                currentToken += ch;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC781" class="react-file-line html-div" data-testid="code-cell" data-line-number="781" style="position:relative">                ch = stream.<span class="pl-c1">readChar</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC782" class="react-file-line html-div" data-testid="code-cell" data-line-number="782" style="position:relative">            }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC783" class="react-file-line html-div" data-testid="code-cell" data-line-number="783" style="position:relative">            <span class="pl-k">const</span> std::string::size_type pos = currentToken.<span class="pl-c1">find_last_not_of</span>(<span class="pl-s"><span class="pl-pds">&quot;</span> <span class="pl-cce">\t</span><span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC784" class="react-file-line html-div" data-testid="code-cell" data-line-number="784" style="position:relative">            <span class="pl-k">if</span> (pos &lt; currentToken.<span class="pl-c1">size</span>() - <span class="pl-c1">1U</span> &amp;&amp; currentToken[pos] == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\\</span><span class="pl-pds">&#039;</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC785" class="react-file-line html-div" data-testid="code-cell" data-line-number="785" style="position:relative">                <span class="pl-c1">portabilityBackslash</span>(outputList, files, location);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC786" class="react-file-line html-div" data-testid="code-cell" data-line-number="786" style="position:relative">            <span class="pl-k">if</span> (currentToken[currentToken.<span class="pl-c1">size</span>() - <span class="pl-c1">1U</span>] == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\\</span><span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC787" class="react-file-line html-div" data-testid="code-cell" data-line-number="787" style="position:relative">                ++multiline;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC788" class="react-file-line html-div" data-testid="code-cell" data-line-number="788" style="position:relative">                currentToken.<span class="pl-c1">erase</span>(currentToken.<span class="pl-c1">size</span>() - <span class="pl-c1">1U</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC789" class="react-file-line html-div" data-testid="code-cell" data-line-number="789" style="position:relative">            } <span class="pl-k">else</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC790" class="react-file-line html-div" data-testid="code-cell" data-line-number="790" style="position:relative">                stream.<span class="pl-c1">ungetChar</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC791" class="react-file-line html-div" data-testid="code-cell" data-line-number="791" style="position:relative">            }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC792" class="react-file-line html-div" data-testid="code-cell" data-line-number="792" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC793" class="react-file-line html-div" data-testid="code-cell" data-line-number="793" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC794" class="react-file-line html-div" data-testid="code-cell" data-line-number="794" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> comment</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC795" class="react-file-line html-div" data-testid="code-cell" data-line-number="795" style="position:relative">        <span class="pl-k">else</span> <span class="pl-k">if</span> (ch == <span class="pl-s"><span class="pl-pds">&#039;</span>/<span class="pl-pds">&#039;</span></span> &amp;&amp; stream.<span class="pl-c1">peekChar</span>() == <span class="pl-s"><span class="pl-pds">&#039;</span>*<span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC796" class="react-file-line html-div" data-testid="code-cell" data-line-number="796" style="position:relative">            currentToken = <span class="pl-s"><span class="pl-pds">&quot;</span>/*<span class="pl-pds">&quot;</span></span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC797" class="react-file-line html-div" data-testid="code-cell" data-line-number="797" style="position:relative">            (<span class="pl-k">void</span>)stream.<span class="pl-c1">readChar</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC798" class="react-file-line html-div" data-testid="code-cell" data-line-number="798" style="position:relative">            ch = stream.<span class="pl-c1">readChar</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC799" class="react-file-line html-div" data-testid="code-cell" data-line-number="799" style="position:relative">            <span class="pl-k">while</span> (stream.<span class="pl-c1">good</span>()) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC800" class="react-file-line html-div" data-testid="code-cell" data-line-number="800" style="position:relative">                currentToken += ch;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC801" class="react-file-line html-div" data-testid="code-cell" data-line-number="801" style="position:relative">                <span class="pl-k">if</span> (currentToken.<span class="pl-c1">size</span>() &gt;= <span class="pl-c1">4U</span> &amp;&amp; <span class="pl-c1">endsWith</span>(currentToken, <span class="pl-c1">COMMENT_END</span>))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC802" class="react-file-line html-div" data-testid="code-cell" data-line-number="802" style="position:relative">                    <span class="pl-k">break</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC803" class="react-file-line html-div" data-testid="code-cell" data-line-number="803" style="position:relative">                ch = stream.<span class="pl-c1">readChar</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC804" class="react-file-line html-div" data-testid="code-cell" data-line-number="804" style="position:relative">            }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC805" class="react-file-line html-div" data-testid="code-cell" data-line-number="805" style="position:relative">            <span class="pl-c"><span class="pl-c">//</span> multiline..</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC806" class="react-file-line html-div" data-testid="code-cell" data-line-number="806" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC807" class="react-file-line html-div" data-testid="code-cell" data-line-number="807" style="position:relative">            std::string::size_type pos = <span class="pl-c1">0</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC808" class="react-file-line html-div" data-testid="code-cell" data-line-number="808" style="position:relative">            <span class="pl-k">while</span> ((pos = currentToken.<span class="pl-c1">find</span>(<span class="pl-s"><span class="pl-pds">&quot;</span><span class="pl-cce">\\\n</span><span class="pl-pds">&quot;</span></span>,pos)) != std::string::npos) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC809" class="react-file-line html-div" data-testid="code-cell" data-line-number="809" style="position:relative">                currentToken.<span class="pl-c1">erase</span>(pos,<span class="pl-c1">2</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC810" class="react-file-line html-div" data-testid="code-cell" data-line-number="810" style="position:relative">                ++multiline;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC811" class="react-file-line html-div" data-testid="code-cell" data-line-number="811" style="position:relative">            }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC812" class="react-file-line html-div" data-testid="code-cell" data-line-number="812" style="position:relative">            <span class="pl-k">if</span> (multiline || <span class="pl-c1">isLastLinePreprocessor</span>()) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC813" class="react-file-line html-div" data-testid="code-cell" data-line-number="813" style="position:relative">                pos = <span class="pl-c1">0</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC814" class="react-file-line html-div" data-testid="code-cell" data-line-number="814" style="position:relative">                <span class="pl-k">while</span> ((pos = currentToken.<span class="pl-c1">find</span>(<span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\n</span><span class="pl-pds">&#039;</span></span>,pos)) != std::string::npos) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC815" class="react-file-line html-div" data-testid="code-cell" data-line-number="815" style="position:relative">                    currentToken.<span class="pl-c1">erase</span>(pos,<span class="pl-c1">1</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC816" class="react-file-line html-div" data-testid="code-cell" data-line-number="816" style="position:relative">                    ++multiline;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC817" class="react-file-line html-div" data-testid="code-cell" data-line-number="817" style="position:relative">                }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC818" class="react-file-line html-div" data-testid="code-cell" data-line-number="818" style="position:relative">            }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC819" class="react-file-line html-div" data-testid="code-cell" data-line-number="819" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC820" class="react-file-line html-div" data-testid="code-cell" data-line-number="820" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC821" class="react-file-line html-div" data-testid="code-cell" data-line-number="821" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> string / char literal</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC822" class="react-file-line html-div" data-testid="code-cell" data-line-number="822" style="position:relative">        <span class="pl-k">else</span> <span class="pl-k">if</span> (ch == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\&quot;</span><span class="pl-pds">&#039;</span></span> || ch == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\&#039;</span><span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC823" class="react-file-line html-div" data-testid="code-cell" data-line-number="823" style="position:relative">            std::string prefix;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC824" class="react-file-line html-div" data-testid="code-cell" data-line-number="824" style="position:relative">            <span class="pl-k">if</span> (<span class="pl-c1">cback</span>() &amp;&amp; <span class="pl-c1">cback</span>()-&gt;<span class="pl-smi">name</span> &amp;&amp; <span class="pl-c1">isStringLiteralPrefix</span>(<span class="pl-c1">cback</span>()-&gt;<span class="pl-c1">str</span>()) &amp;&amp;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC825" class="react-file-line html-div" data-testid="code-cell" data-line-number="825" style="position:relative">                ((<span class="pl-c1">cback</span>()-&gt;<span class="pl-smi">location</span>.<span class="pl-smi">col</span> + <span class="pl-c1">cback</span>()-&gt;<span class="pl-c1">str</span>().<span class="pl-c1">size</span>()) == location.<span class="pl-smi">col</span>) &amp;&amp;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC826" class="react-file-line html-div" data-testid="code-cell" data-line-number="826" style="position:relative">                (<span class="pl-c1">cback</span>()-&gt;<span class="pl-smi">location</span>.<span class="pl-smi">line</span> == location.<span class="pl-smi">line</span>)) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC827" class="react-file-line html-div" data-testid="code-cell" data-line-number="827" style="position:relative">                prefix = <span class="pl-c1">cback</span>()-&gt;<span class="pl-c1">str</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC828" class="react-file-line html-div" data-testid="code-cell" data-line-number="828" style="position:relative">            }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC829" class="react-file-line html-div" data-testid="code-cell" data-line-number="829" style="position:relative">            <span class="pl-c"><span class="pl-c">//</span> C++11 raw string literal</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC830" class="react-file-line html-div" data-testid="code-cell" data-line-number="830" style="position:relative">            <span class="pl-k">if</span> (ch == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\&quot;</span><span class="pl-pds">&#039;</span></span> &amp;&amp; !prefix.<span class="pl-c1">empty</span>() &amp;&amp; *<span class="pl-c1">cback</span>()-&gt;<span class="pl-c1">str</span>().<span class="pl-c1">rbegin</span>() == <span class="pl-s"><span class="pl-pds">&#039;</span>R<span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC831" class="react-file-line html-div" data-testid="code-cell" data-line-number="831" style="position:relative">                std::string delim;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC832" class="react-file-line html-div" data-testid="code-cell" data-line-number="832" style="position:relative">                currentToken = ch;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC833" class="react-file-line html-div" data-testid="code-cell" data-line-number="833" style="position:relative">                prefix.<span class="pl-c1">resize</span>(prefix.<span class="pl-c1">size</span>() - <span class="pl-c1">1</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC834" class="react-file-line html-div" data-testid="code-cell" data-line-number="834" style="position:relative">                ch = stream.<span class="pl-c1">readChar</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC835" class="react-file-line html-div" data-testid="code-cell" data-line-number="835" style="position:relative">                <span class="pl-k">while</span> (stream.<span class="pl-c1">good</span>() &amp;&amp; ch != <span class="pl-s"><span class="pl-pds">&#039;</span>(<span class="pl-pds">&#039;</span></span> &amp;&amp; ch != <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\n</span><span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC836" class="react-file-line html-div" data-testid="code-cell" data-line-number="836" style="position:relative">                    delim += ch;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC837" class="react-file-line html-div" data-testid="code-cell" data-line-number="837" style="position:relative">                    ch = stream.<span class="pl-c1">readChar</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC838" class="react-file-line html-div" data-testid="code-cell" data-line-number="838" style="position:relative">                }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC839" class="react-file-line html-div" data-testid="code-cell" data-line-number="839" style="position:relative">                <span class="pl-k">if</span> (!stream.<span class="pl-c1">good</span>() || ch == <span class="pl-s"><span class="pl-pds">&#039;</span><span class="pl-cce">\n</span><span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC840" class="react-file-line html-div" data-testid="code-cell" data-line-number="840" style="position:relative">                    <span class="pl-k">if</span> (outputList) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC841" class="react-file-line html-div" data-testid="code-cell" data-line-number="841" style="position:relative">                        Output <span class="pl-smi">err</span>(files);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC842" class="react-file-line html-div" data-testid="code-cell" data-line-number="842" style="position:relative">                        err.<span class="pl-smi">type</span> = Output::<span class="pl-c1">SYNTAX_ERROR</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC843" class="react-file-line html-div" data-testid="code-cell" data-line-number="843" style="position:relative">                        err.<span class="pl-smi">location</span> = location;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC844" class="react-file-line html-div" data-testid="code-cell" data-line-number="844" style="position:relative">                        err.<span class="pl-smi">msg</span> = <span class="pl-s"><span class="pl-pds">&quot;</span>Invalid newline in raw string delimiter.<span class="pl-pds">&quot;</span></span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC845" class="react-file-line html-div" data-testid="code-cell" data-line-number="845" style="position:relative">                        outputList-&gt;<span class="pl-c1">push_back</span>(err);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC846" class="react-file-line html-div" data-testid="code-cell" data-line-number="846" style="position:relative">                    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC847" class="react-file-line html-div" data-testid="code-cell" data-line-number="847" style="position:relative">                    <span class="pl-k">return</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC848" class="react-file-line html-div" data-testid="code-cell" data-line-number="848" style="position:relative">                }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC849" class="react-file-line html-div" data-testid="code-cell" data-line-number="849" style="position:relative">                <span class="pl-k">const</span> std::string <span class="pl-smi">endOfRawString</span>(<span class="pl-s"><span class="pl-pds">&#039;</span>)<span class="pl-pds">&#039;</span></span> + delim + currentToken);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC850" class="react-file-line html-div" data-testid="code-cell" data-line-number="850" style="position:relative">                <span class="pl-k">while</span> (stream.<span class="pl-c1">good</span>() &amp;&amp; !(<span class="pl-c1">endsWith</span>(currentToken, endOfRawString) &amp;&amp; currentToken.<span class="pl-c1">size</span>() &gt; <span class="pl-c1">1</span>))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC851" class="react-file-line html-div" data-testid="code-cell" data-line-number="851" style="position:relative">                    currentToken += stream.<span class="pl-c1">readChar</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC852" class="react-file-line html-div" data-testid="code-cell" data-line-number="852" style="position:relative">                <span class="pl-k">if</span> (!<span class="pl-c1">endsWith</span>(currentToken, endOfRawString)) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC853" class="react-file-line html-div" data-testid="code-cell" data-line-number="853" style="position:relative">                    <span class="pl-k">if</span> (outputList) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC854" class="react-file-line html-div" data-testid="code-cell" data-line-number="854" style="position:relative">                        Output <span class="pl-smi">err</span>(files);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC855" class="react-file-line html-div" data-testid="code-cell" data-line-number="855" style="position:relative">                        err.<span class="pl-smi">type</span> = Output::<span class="pl-c1">SYNTAX_ERROR</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC856" class="react-file-line html-div" data-testid="code-cell" data-line-number="856" style="position:relative">                        err.<span class="pl-smi">location</span> = location;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC857" class="react-file-line html-div" data-testid="code-cell" data-line-number="857" style="position:relative">                        err.<span class="pl-smi">msg</span> = <span class="pl-s"><span class="pl-pds">&quot;</span>Raw string missing terminating delimiter.<span class="pl-pds">&quot;</span></span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC858" class="react-file-line html-div" data-testid="code-cell" data-line-number="858" style="position:relative">                        outputList-&gt;<span class="pl-c1">push_back</span>(err);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC859" class="react-file-line html-div" data-testid="code-cell" data-line-number="859" style="position:relative">                    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC860" class="react-file-line html-div" data-testid="code-cell" data-line-number="860" style="position:relative">                    <span class="pl-k">return</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC861" class="react-file-line html-div" data-testid="code-cell" data-line-number="861" style="position:relative">                }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC862" class="react-file-line html-div" data-testid="code-cell" data-line-number="862" style="position:relative">                currentToken.<span class="pl-c1">erase</span>(currentToken.<span class="pl-c1">size</span>() - endOfRawString.<span class="pl-c1">size</span>(), endOfRawString.<span class="pl-c1">size</span>() - <span class="pl-c1">1U</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC863" class="react-file-line html-div" data-testid="code-cell" data-line-number="863" style="position:relative">                currentToken = <span class="pl-c1">escapeString</span>(currentToken);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC864" class="react-file-line html-div" data-testid="code-cell" data-line-number="864" style="position:relative">                currentToken.<span class="pl-c1">insert</span>(<span class="pl-c1">0</span>, prefix);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC865" class="react-file-line html-div" data-testid="code-cell" data-line-number="865" style="position:relative">                <span class="pl-c1">back</span>()-&gt;<span class="pl-c1">setstr</span>(currentToken);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC866" class="react-file-line html-div" data-testid="code-cell" data-line-number="866" style="position:relative">                location.<span class="pl-c1">adjust</span>(currentToken);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC867" class="react-file-line html-div" data-testid="code-cell" data-line-number="867" style="position:relative">                <span class="pl-k">if</span> (currentToken.<span class="pl-c1">find_first_of</span>(<span class="pl-s"><span class="pl-pds">&quot;</span><span class="pl-cce">\r\n</span><span class="pl-pds">&quot;</span></span>) == std::string::npos)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC868" class="react-file-line html-div" data-testid="code-cell" data-line-number="868" style="position:relative">                    location.<span class="pl-smi">col</span> += <span class="pl-c1">2</span> + <span class="pl-c1">2</span> * delim.<span class="pl-c1">size</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC869" class="react-file-line html-div" data-testid="code-cell" data-line-number="869" style="position:relative">                <span class="pl-k">else</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC870" class="react-file-line html-div" data-testid="code-cell" data-line-number="870" style="position:relative">                    location.<span class="pl-smi">col</span> += <span class="pl-c1">1</span> + delim.<span class="pl-c1">size</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC871" class="react-file-line html-div" data-testid="code-cell" data-line-number="871" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC872" class="react-file-line html-div" data-testid="code-cell" data-line-number="872" style="position:relative">                <span class="pl-k">continue</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC873" class="react-file-line html-div" data-testid="code-cell" data-line-number="873" style="position:relative">            }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC874" class="react-file-line html-div" data-testid="code-cell" data-line-number="874" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC875" class="react-file-line html-div" data-testid="code-cell" data-line-number="875" style="position:relative">            currentToken = <span class="pl-c1">readUntil</span>(stream,location,ch,ch,outputList);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC876" class="react-file-line html-div" data-testid="code-cell" data-line-number="876" style="position:relative">            <span class="pl-k">if</span> (currentToken.<span class="pl-c1">size</span>() &lt; <span class="pl-c1">2U</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC877" class="react-file-line html-div" data-testid="code-cell" data-line-number="877" style="position:relative">                <span class="pl-c"><span class="pl-c">//</span> Error is reported by readUntil()</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC878" class="react-file-line html-div" data-testid="code-cell" data-line-number="878" style="position:relative">                <span class="pl-k">return</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC879" class="react-file-line html-div" data-testid="code-cell" data-line-number="879" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC880" class="react-file-line html-div" data-testid="code-cell" data-line-number="880" style="position:relative">            std::string s = currentToken;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC881" class="react-file-line html-div" data-testid="code-cell" data-line-number="881" style="position:relative">            std::string::size_type pos;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC882" class="react-file-line html-div" data-testid="code-cell" data-line-number="882" style="position:relative">            <span class="pl-k">int</span> newlines = <span class="pl-c1">0</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC883" class="react-file-line html-div" data-testid="code-cell" data-line-number="883" style="position:relative">            <span class="pl-k">while</span> ((pos = s.<span class="pl-c1">find_first_of</span>(<span class="pl-s"><span class="pl-pds">&quot;</span><span class="pl-cce">\r\n</span><span class="pl-pds">&quot;</span></span>)) != std::string::npos) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC884" class="react-file-line html-div" data-testid="code-cell" data-line-number="884" style="position:relative">                s.<span class="pl-c1">erase</span>(pos,<span class="pl-c1">1</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC885" class="react-file-line html-div" data-testid="code-cell" data-line-number="885" style="position:relative">                newlines++;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC886" class="react-file-line html-div" data-testid="code-cell" data-line-number="886" style="position:relative">            }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC887" class="react-file-line html-div" data-testid="code-cell" data-line-number="887" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC888" class="react-file-line html-div" data-testid="code-cell" data-line-number="888" style="position:relative">            <span class="pl-k">if</span> (prefix.<span class="pl-c1">empty</span>())</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC889" class="react-file-line html-div" data-testid="code-cell" data-line-number="889" style="position:relative">                <span class="pl-c1">push_back</span>(<span class="pl-k">new</span> <span class="pl-c1">Token</span>(s, location, <span class="pl-c1">std::isspace</span>(stream.<span class="pl-c1">peekChar</span>()))); <span class="pl-c"><span class="pl-c">//</span> push string without newlines</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC890" class="react-file-line html-div" data-testid="code-cell" data-line-number="890" style="position:relative">            <span class="pl-k">else</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC891" class="react-file-line html-div" data-testid="code-cell" data-line-number="891" style="position:relative">                <span class="pl-c1">back</span>()-&gt;<span class="pl-c1">setstr</span>(prefix + s);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC892" class="react-file-line html-div" data-testid="code-cell" data-line-number="892" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC893" class="react-file-line html-div" data-testid="code-cell" data-line-number="893" style="position:relative">            <span class="pl-k">if</span> (newlines &gt; <span class="pl-c1">0</span> ) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC894" class="react-file-line html-div" data-testid="code-cell" data-line-number="894" style="position:relative">                <span class="pl-k">const</span> Token * <span class="pl-k">const</span> llTok = <span class="pl-c1">lastLineTok</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC895" class="react-file-line html-div" data-testid="code-cell" data-line-number="895" style="position:relative">                <span class="pl-k">if</span> (llTok &amp;&amp; llTok-&gt;<span class="pl-smi">op</span> == <span class="pl-s"><span class="pl-pds">&#039;</span>#<span class="pl-pds">&#039;</span></span> &amp;&amp; llTok-&gt;<span class="pl-smi">next</span> &amp;&amp; (llTok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-c1">str</span>() == <span class="pl-s"><span class="pl-pds">&quot;</span>define<span class="pl-pds">&quot;</span></span> || llTok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-c1">str</span>() == <span class="pl-s"><span class="pl-pds">&quot;</span>pragma<span class="pl-pds">&quot;</span></span>) &amp;&amp; llTok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-smi">next</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC896" class="react-file-line html-div" data-testid="code-cell" data-line-number="896" style="position:relative">                    multiline += newlines;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC897" class="react-file-line html-div" data-testid="code-cell" data-line-number="897" style="position:relative">                    location.<span class="pl-c1">adjust</span>(s);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC898" class="react-file-line html-div" data-testid="code-cell" data-line-number="898" style="position:relative">                    <span class="pl-k">continue</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC899" class="react-file-line html-div" data-testid="code-cell" data-line-number="899" style="position:relative">                }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC900" class="react-file-line html-div" data-testid="code-cell" data-line-number="900" style="position:relative">            }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC901" class="react-file-line html-div" data-testid="code-cell" data-line-number="901" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC902" class="react-file-line html-div" data-testid="code-cell" data-line-number="902" style="position:relative">            location.<span class="pl-c1">adjust</span>(currentToken);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC903" class="react-file-line html-div" data-testid="code-cell" data-line-number="903" style="position:relative">            <span class="pl-k">continue</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC904" class="react-file-line html-div" data-testid="code-cell" data-line-number="904" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC905" class="react-file-line html-div" data-testid="code-cell" data-line-number="905" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC906" class="react-file-line html-div" data-testid="code-cell" data-line-number="906" style="position:relative">        <span class="pl-k">else</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC907" class="react-file-line html-div" data-testid="code-cell" data-line-number="907" style="position:relative">            currentToken += ch;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC908" class="react-file-line html-div" data-testid="code-cell" data-line-number="908" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC909" class="react-file-line html-div" data-testid="code-cell" data-line-number="909" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC910" class="react-file-line html-div" data-testid="code-cell" data-line-number="910" style="position:relative">        <span class="pl-k">if</span> (*currentToken.<span class="pl-c1">begin</span>() == <span class="pl-s"><span class="pl-pds">&#039;</span>&lt;<span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC911" class="react-file-line html-div" data-testid="code-cell" data-line-number="911" style="position:relative">            <span class="pl-k">const</span> Token * <span class="pl-k">const</span> llTok = <span class="pl-c1">lastLineTok</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC912" class="react-file-line html-div" data-testid="code-cell" data-line-number="912" style="position:relative">            <span class="pl-k">if</span> (llTok &amp;&amp; llTok-&gt;<span class="pl-smi">op</span> == <span class="pl-s"><span class="pl-pds">&#039;</span>#<span class="pl-pds">&#039;</span></span> &amp;&amp; llTok-&gt;<span class="pl-smi">next</span> &amp;&amp; llTok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-c1">str</span>() == <span class="pl-s"><span class="pl-pds">&quot;</span>include<span class="pl-pds">&quot;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC913" class="react-file-line html-div" data-testid="code-cell" data-line-number="913" style="position:relative">                currentToken = <span class="pl-c1">readUntil</span>(stream, location, <span class="pl-s"><span class="pl-pds">&#039;</span>&lt;<span class="pl-pds">&#039;</span></span>, <span class="pl-s"><span class="pl-pds">&#039;</span>&gt;<span class="pl-pds">&#039;</span></span>, outputList);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC914" class="react-file-line html-div" data-testid="code-cell" data-line-number="914" style="position:relative">                <span class="pl-k">if</span> (currentToken.<span class="pl-c1">size</span>() &lt; <span class="pl-c1">2U</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC915" class="react-file-line html-div" data-testid="code-cell" data-line-number="915" style="position:relative">                    <span class="pl-k">return</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC916" class="react-file-line html-div" data-testid="code-cell" data-line-number="916" style="position:relative">            }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC917" class="react-file-line html-div" data-testid="code-cell" data-line-number="917" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC918" class="react-file-line html-div" data-testid="code-cell" data-line-number="918" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC919" class="react-file-line html-div" data-testid="code-cell" data-line-number="919" style="position:relative">        <span class="pl-c1">push_back</span>(<span class="pl-k">new</span> <span class="pl-c1">Token</span>(currentToken, location, <span class="pl-c1">std::isspace</span>(stream.<span class="pl-c1">peekChar</span>())));</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC920" class="react-file-line html-div" data-testid="code-cell" data-line-number="920" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC921" class="react-file-line html-div" data-testid="code-cell" data-line-number="921" style="position:relative">        <span class="pl-k">if</span> (multiline)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC922" class="react-file-line html-div" data-testid="code-cell" data-line-number="922" style="position:relative">            location.<span class="pl-smi">col</span> += currentToken.<span class="pl-c1">size</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC923" class="react-file-line html-div" data-testid="code-cell" data-line-number="923" style="position:relative">        <span class="pl-k">else</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC924" class="react-file-line html-div" data-testid="code-cell" data-line-number="924" style="position:relative">            location.<span class="pl-c1">adjust</span>(currentToken);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC925" class="react-file-line html-div" data-testid="code-cell" data-line-number="925" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC926" class="react-file-line html-div" data-testid="code-cell" data-line-number="926" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC927" class="react-file-line html-div" data-testid="code-cell" data-line-number="927" style="position:relative">    <span class="pl-c1">combineOperators</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC928" class="react-file-line html-div" data-testid="code-cell" data-line-number="928" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC929" class="react-file-line html-div" data-testid="code-cell" data-line-number="929" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC930" class="react-file-line html-div" data-testid="code-cell" data-line-number="930" style="position:relative"><span class="pl-k">void</span> <span class="pl-en">simplecpp::TokenList::constFold</span>()</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC931" class="react-file-line html-div" data-testid="code-cell" data-line-number="931" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC932" class="react-file-line html-div" data-testid="code-cell" data-line-number="932" style="position:relative">    <span class="pl-k">while</span> (<span class="pl-c1">cfront</span>()) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC933" class="react-file-line html-div" data-testid="code-cell" data-line-number="933" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> goto last &#039;(&#039;</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC934" class="react-file-line html-div" data-testid="code-cell" data-line-number="934" style="position:relative">        Token *tok = <span class="pl-c1">back</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC935" class="react-file-line html-div" data-testid="code-cell" data-line-number="935" style="position:relative">        <span class="pl-k">while</span> (tok &amp;&amp; tok-&gt;<span class="pl-smi">op</span> != <span class="pl-s"><span class="pl-pds">&#039;</span>(<span class="pl-pds">&#039;</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC936" class="react-file-line html-div" data-testid="code-cell" data-line-number="936" style="position:relative">            tok = tok-&gt;<span class="pl-smi">previous</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC937" class="react-file-line html-div" data-testid="code-cell" data-line-number="937" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC938" class="react-file-line html-div" data-testid="code-cell" data-line-number="938" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> no &#039;(&#039;, goto first token</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC939" class="react-file-line html-div" data-testid="code-cell" data-line-number="939" style="position:relative">        <span class="pl-k">if</span> (!tok)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC940" class="react-file-line html-div" data-testid="code-cell" data-line-number="940" style="position:relative">            tok = <span class="pl-c1">front</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC941" class="react-file-line html-div" data-testid="code-cell" data-line-number="941" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC942" class="react-file-line html-div" data-testid="code-cell" data-line-number="942" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> Constant fold expression</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC943" class="react-file-line html-div" data-testid="code-cell" data-line-number="943" style="position:relative">        <span class="pl-c1">constFoldUnaryNotPosNeg</span>(tok);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC944" class="react-file-line html-div" data-testid="code-cell" data-line-number="944" style="position:relative">        <span class="pl-c1">constFoldMulDivRem</span>(tok);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC945" class="react-file-line html-div" data-testid="code-cell" data-line-number="945" style="position:relative">        <span class="pl-c1">constFoldAddSub</span>(tok);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC946" class="react-file-line html-div" data-testid="code-cell" data-line-number="946" style="position:relative">        <span class="pl-c1">constFoldShift</span>(tok);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC947" class="react-file-line html-div" data-testid="code-cell" data-line-number="947" style="position:relative">        <span class="pl-c1">constFoldComparison</span>(tok);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC948" class="react-file-line html-div" data-testid="code-cell" data-line-number="948" style="position:relative">        <span class="pl-c1">constFoldBitwise</span>(tok);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC949" class="react-file-line html-div" data-testid="code-cell" data-line-number="949" style="position:relative">        <span class="pl-c1">constFoldLogicalOp</span>(tok);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC950" class="react-file-line html-div" data-testid="code-cell" data-line-number="950" style="position:relative">        <span class="pl-c1">constFoldQuestionOp</span>(&amp;tok);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC951" class="react-file-line html-div" data-testid="code-cell" data-line-number="951" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC952" class="react-file-line html-div" data-testid="code-cell" data-line-number="952" style="position:relative">        <span class="pl-c"><span class="pl-c">//</span> If there is no &#039;(&#039; we are done with the constant folding</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC953" class="react-file-line html-div" data-testid="code-cell" data-line-number="953" style="position:relative">        <span class="pl-k">if</span> (tok-&gt;<span class="pl-smi">op</span> != <span class="pl-s"><span class="pl-pds">&#039;</span>(<span class="pl-pds">&#039;</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC954" class="react-file-line html-div" data-testid="code-cell" data-line-number="954" style="position:relative">            <span class="pl-k">break</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC955" class="react-file-line html-div" data-testid="code-cell" data-line-number="955" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC956" class="react-file-line html-div" data-testid="code-cell" data-line-number="956" style="position:relative">        <span class="pl-k">if</span> (!tok-&gt;<span class="pl-smi">next</span> || !tok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-smi">next</span> || tok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-smi">op</span> != <span class="pl-s"><span class="pl-pds">&#039;</span>)<span class="pl-pds">&#039;</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC957" class="react-file-line html-div" data-testid="code-cell" data-line-number="957" style="position:relative">            <span class="pl-k">break</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC958" class="react-file-line html-div" data-testid="code-cell" data-line-number="958" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC959" class="react-file-line html-div" data-testid="code-cell" data-line-number="959" style="position:relative">        tok = tok-&gt;<span class="pl-smi">next</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC960" class="react-file-line html-div" data-testid="code-cell" data-line-number="960" style="position:relative">        <span class="pl-c1">deleteToken</span>(tok-&gt;<span class="pl-smi">previous</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC961" class="react-file-line html-div" data-testid="code-cell" data-line-number="961" style="position:relative">        <span class="pl-c1">deleteToken</span>(tok-&gt;<span class="pl-smi">next</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC962" class="react-file-line html-div" data-testid="code-cell" data-line-number="962" style="position:relative">    }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC963" class="react-file-line html-div" data-testid="code-cell" data-line-number="963" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC964" class="react-file-line html-div" data-testid="code-cell" data-line-number="964" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC965" class="react-file-line html-div" data-testid="code-cell" data-line-number="965" style="position:relative"><span class="pl-k">static</span> <span class="pl-k">bool</span> <span class="pl-en">isFloatSuffix</span>(<span class="pl-k">const</span> simplecpp::Token *tok)</div></div></div><div class="child-of-line-964  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC966" class="react-file-line html-div" data-testid="code-cell" data-line-number="966" style="position:relative">{</div></div></div><div class="child-of-line-964  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC967" class="react-file-line html-div" data-testid="code-cell" data-line-number="967" style="position:relative">    <span class="pl-k">if</span> (!tok || tok-&gt;<span class="pl-c1">str</span>().<span class="pl-c1">size</span>() != <span class="pl-c1">1U</span>)</div></div></div><div class="child-of-line-964  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC968" class="react-file-line html-div" data-testid="code-cell" data-line-number="968" style="position:relative">        <span class="pl-k">return</span> <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-964  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC969" class="react-file-line html-div" data-testid="code-cell" data-line-number="969" style="position:relative">    <span class="pl-k">const</span> <span class="pl-k">char</span> c = <span class="pl-c1">std::tolower</span>(tok-&gt;<span class="pl-c1">str</span>()[<span class="pl-c1">0</span>]);</div></div></div><div class="child-of-line-964  react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC970" class="react-file-line html-div" data-testid="code-cell" data-line-number="970" style="position:relative">    <span class="pl-k">return</span> c == <span class="pl-s"><span class="pl-pds">&#039;</span>f<span class="pl-pds">&#039;</span></span> || c == <span class="pl-s"><span class="pl-pds">&#039;</span>l<span class="pl-pds">&#039;</span></span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC971" class="react-file-line html-div" data-testid="code-cell" data-line-number="971" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC972" class="react-file-line html-div" data-testid="code-cell" data-line-number="972" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC973" class="react-file-line html-div" data-testid="code-cell" data-line-number="973" style="position:relative"><span class="pl-k">void</span> <span class="pl-en">simplecpp::TokenList::combineOperators</span>()</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC974" class="react-file-line html-div" data-testid="code-cell" data-line-number="974" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC975" class="react-file-line html-div" data-testid="code-cell" data-line-number="975" style="position:relative">    std::stack&lt;<span class="pl-k">bool</span>&gt; executableScope;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC976" class="react-file-line html-div" data-testid="code-cell" data-line-number="976" style="position:relative">    executableScope.<span class="pl-c1">push</span>(<span class="pl-c1">false</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC977" class="react-file-line html-div" data-testid="code-cell" data-line-number="977" style="position:relative">    <span class="pl-k">for</span> (Token *tok = <span class="pl-c1">front</span>(); tok; tok = tok-&gt;<span class="pl-smi">next</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC978" class="react-file-line html-div" data-testid="code-cell" data-line-number="978" style="position:relative">        <span class="pl-k">if</span> (tok-&gt;<span class="pl-smi">op</span> == <span class="pl-s"><span class="pl-pds">&#039;</span>{<span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC979" class="react-file-line html-div" data-testid="code-cell" data-line-number="979" style="position:relative">            <span class="pl-k">if</span> (executableScope.<span class="pl-c1">top</span>()) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC980" class="react-file-line html-div" data-testid="code-cell" data-line-number="980" style="position:relative">                executableScope.<span class="pl-c1">push</span>(<span class="pl-c1">true</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC981" class="react-file-line html-div" data-testid="code-cell" data-line-number="981" style="position:relative">                <span class="pl-k">continue</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC982" class="react-file-line html-div" data-testid="code-cell" data-line-number="982" style="position:relative">            }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC983" class="react-file-line html-div" data-testid="code-cell" data-line-number="983" style="position:relative">            <span class="pl-k">const</span> Token *prev = tok-&gt;<span class="pl-smi">previous</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC984" class="react-file-line html-div" data-testid="code-cell" data-line-number="984" style="position:relative">            <span class="pl-k">while</span> (prev &amp;&amp; prev-&gt;<span class="pl-c1">isOneOf</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>;{}()<span class="pl-pds">&quot;</span></span>))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC985" class="react-file-line html-div" data-testid="code-cell" data-line-number="985" style="position:relative">                prev = prev-&gt;<span class="pl-smi">previous</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC986" class="react-file-line html-div" data-testid="code-cell" data-line-number="986" style="position:relative">            executableScope.<span class="pl-c1">push</span>(prev &amp;&amp; prev-&gt;<span class="pl-smi">op</span> == <span class="pl-s"><span class="pl-pds">&#039;</span>)<span class="pl-pds">&#039;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC987" class="react-file-line html-div" data-testid="code-cell" data-line-number="987" style="position:relative">            <span class="pl-k">continue</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC988" class="react-file-line html-div" data-testid="code-cell" data-line-number="988" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC989" class="react-file-line html-div" data-testid="code-cell" data-line-number="989" style="position:relative">        <span class="pl-k">if</span> (tok-&gt;<span class="pl-smi">op</span> == <span class="pl-s"><span class="pl-pds">&#039;</span>}<span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC990" class="react-file-line html-div" data-testid="code-cell" data-line-number="990" style="position:relative">            <span class="pl-k">if</span> (executableScope.<span class="pl-c1">size</span>() &gt; <span class="pl-c1">1</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC991" class="react-file-line html-div" data-testid="code-cell" data-line-number="991" style="position:relative">                executableScope.<span class="pl-c1">pop</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC992" class="react-file-line html-div" data-testid="code-cell" data-line-number="992" style="position:relative">            <span class="pl-k">continue</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC993" class="react-file-line html-div" data-testid="code-cell" data-line-number="993" style="position:relative">        }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC994" class="react-file-line html-div" data-testid="code-cell" data-line-number="994" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC995" class="react-file-line html-div" data-testid="code-cell" data-line-number="995" style="position:relative">        <span class="pl-k">if</span> (tok-&gt;<span class="pl-smi">op</span> == <span class="pl-s"><span class="pl-pds">&#039;</span>.<span class="pl-pds">&#039;</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC996" class="react-file-line html-div" data-testid="code-cell" data-line-number="996" style="position:relative">            <span class="pl-c"><span class="pl-c">//</span> ellipsis ...</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC997" class="react-file-line html-div" data-testid="code-cell" data-line-number="997" style="position:relative">            <span class="pl-k">if</span> (tok-&gt;<span class="pl-smi">next</span> &amp;&amp; tok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-smi">op</span> == <span class="pl-s"><span class="pl-pds">&#039;</span>.<span class="pl-pds">&#039;</span></span> &amp;&amp; tok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-smi">location</span>.<span class="pl-smi">col</span> == (tok-&gt;<span class="pl-smi">location</span>.<span class="pl-smi">col</span> + <span class="pl-c1">1</span>) &amp;&amp;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC998" class="react-file-line html-div" data-testid="code-cell" data-line-number="998" style="position:relative">                tok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-smi">next</span> &amp;&amp; tok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-smi">op</span> == <span class="pl-s"><span class="pl-pds">&#039;</span>.<span class="pl-pds">&#039;</span></span> &amp;&amp; tok-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-smi">next</span>-&gt;<span class="pl-smi">location</span>.<span class="pl-smi">col</span> == (tok-&gt;<span class="pl-smi">location</span>.<span class="pl-smi">col</span> + <span class="pl-c1">2</span>)) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC999" class="react-file-line html-div" data-testid="code-cell" data-line-number="999" style="position:relative">                tok-&gt;<span class="pl-c1">setstr</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>...<span class="pl-pds">&quot;</span></span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC1000" class="react-file-line html-div" data-testid="code-cell" data-line-number="1000" style="position:relative">                <span class="pl-c1">deleteToken</span>(tok-&gt;<span class="pl-smi">next</span>);</div></div></div></div></div><div class="CodeLinesSSR-module__viewRemainderLink__pd3EU"><a class="prc-Link-Link-9ZwDx" data-component="Link" href="https://github.com/tmpvar/simplecpp/raw/refs/heads/master/simplecpp.cpp">View remainder of file in raw view</a></div></div><div id="copilot-button-container"></div></div><div id="highlighted-line-menu-container"></div><div class="HighlightedLineMenu-module__overlayPortalRoot__QDpCt"></div></div></div><!--/$--><div class="d-none"></div></section></div></div></div> </div> <!-- --> </div></div></div></div></div></div><div class="ScrollMarksContainer-module__scrollMarksContainer__Eu7uU" id="find-result-marks-container"></div><div class="d-none"></div><div class="d-none"></div></div> <!-- --> <!-- --> </div>
</react-app>




  </div>

</turbo-frame>

    </main>
  </div>

  </div>

          <footer class="footer f6 color-fg-muted color-border-subtle tmp-pt-7 tmp-pb-6 p-responsive" role="contentinfo"  >
  <h2 class='sr-only'>Footer</h2>

  


  <div class="d-flex flex-justify-center flex-items-center flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap">
    <div class="d-flex flex-items-center flex-shrink-0 mx-2">
      <a aria-label="GitHub Homepage" class="footer-octicon mr-2" href="https://github.com">
        <svg aria-hidden="true" data-component="Octicon" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github">
    <path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path>
</svg>
</a>
      <span>
        &copy; 2026 GitHub,&nbsp;Inc.
      </span>
    </div>

    <nav aria-label="Footer">
      <h3 class="sr-only" id="sr-footer-heading">Footer navigation</h3>

      <ul class="list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0" aria-labelledby="sr-footer-heading">


          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Terms&quot;,&quot;label&quot;:&quot;text:terms&quot;}" href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-view-component="true" class="Link--secondary Link">Terms</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to privacy&quot;,&quot;label&quot;:&quot;text:privacy&quot;}" href="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-view-component="true" class="Link--secondary Link">Privacy</a>
          </li>


            <li class="mx-2">
              <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to security&quot;,&quot;label&quot;:&quot;text:security&quot;}" href="https://github.com/security" data-view-component="true" class="Link--secondary Link">Security</a>
            </li>

            <li class="mx-2">
              <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to status&quot;,&quot;label&quot;:&quot;text:status&quot;}" href="https://www.githubstatus.com/" data-view-component="true" class="Link--secondary Link">Status</a>
            </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to community&quot;,&quot;label&quot;:&quot;text:community&quot;}" href="https://github.community/" data-view-component="true" class="Link--secondary Link">Community</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to docs&quot;,&quot;label&quot;:&quot;text:docs&quot;}" href="https://docs.github.com/" data-view-component="true" class="Link--secondary Link">Docs</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to contact&quot;,&quot;label&quot;:&quot;text:contact&quot;}" href="https://support.github.com?tags=dotcom-footer" data-view-component="true" class="Link--secondary Link">Contact</a>
          </li>

          
<li class="mx-2" >
  <cookie-consent-link>
    <button
      type="button"
      class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent"
      data-action="click:cookie-consent-link#showConsentManagement"
      data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;cookies&quot;,&quot;context&quot;:&quot;subfooter&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;cookies_link_subfooter_footer&quot;}"
    >
      Manage cookies
    </button>
  </cookie-consent-link>
</li>

  <li class="mx-2">
    <cookie-consent-link>
      <button
        type="button"
        class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent text-left"
        data-action="click:cookie-consent-link#showConsentManagement"
        data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;dont_share_info&quot;,&quot;context&quot;:&quot;subfooter&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;dont_share_info_link_subfooter_footer&quot;}"
      >
        Do not share my personal information
      </button>
    </cookie-consent-link>
  </li>

      </ul>
    </nav>
  </div>
</footer>



    <ghcc-consent id="ghcc" class="position-fixed bottom-0 left-0" style="z-index: 999999"
      data-locale="en"
      data-initial-cookie-consent-allowed=""
      data-cookie-consent-required="true"
    ></ghcc-consent>




  <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden>
    <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
    <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
    </button>
    You can’t perform that action at this time.
  </div>

    <template id="site-details-dialog">
  <details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open>
    <summary role="button" aria-label="Close dialog"></summary>
    <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal">
      <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog>
        <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
      </button>
      <div class="octocat-spinner tmp-my-6 js-details-dialog-spinner"></div>
    </details-dialog>
  </details>
</template>

    <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;">
  <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;">
  </div>
</div>

    <template id="snippet-clipboard-copy-button">
  <div class="zeroclipboard-container position-absolute right-0 top-0">
    <clipboard-copy aria-label="Copy code to clipboard" class="ClipboardButton btn js-clipboard-copy m-2 p-0" data-copy-feedback="Copied!" data-tooltip-direction="w">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2 tmp-m-2">
    <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
</svg>
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2 tmp-m-2">
    <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path>
</svg>
    </clipboard-copy>
  </div>
</template>
<template id="snippet-clipboard-copy-button-unpositioned">
  <div class="zeroclipboard-container">
    <clipboard-copy aria-label="Copy code to clipboard" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon">
    <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
</svg>
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none">
    <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path>
</svg>
    </clipboard-copy>
  </div>
</template>




    </div>
    <div id="js-global-screen-reader-notice" class="sr-only mt-n1" aria-live="polite" aria-atomic="true" ></div>
    <div id="js-global-screen-reader-notice-assertive" class="sr-only mt-n1" aria-live="assertive" aria-atomic="true"></div>
  </body>
</html>

