From b5311c170a16548db7ca31892ddb3e1fd86f0057 Mon Sep 17 00:00:00 2001 From: "tgstation-server-ci[bot]" <161980869+tgstation-server-ci[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 04:55:05 +0000 Subject: [PATCH] Deploy code docs to GitHub Pages for workflow run 3376 Commit: d706658df71377120f75a5d5c53102a0e43164b0 --- _administration_controller_8cs_source.html | 2 +- _api_client_8cs_source.html | 4 +- _api_controller_8cs_source.html | 2 +- _api_headers_8cs_source.html | 100 ++--- _api_root_controller_8cs_source.html | 6 +- _application_8cs_source.html | 2 +- ...ication_builder_extensions_8cs_source.html | 341 +++++++++--------- ...ed_graph_q_l_server_client_8cs_source.html | 2 +- _chat_channel_extensions_8cs_source.html | 2 +- _chat_controller_8cs_source.html | 2 +- _configuration_8cs_source.html | 2 +- _configuration_controller_8cs_source.html | 2 +- _control_panel_controller_8cs_source.html | 2 +- _controller_base_extensions_8cs_source.html | 2 +- ...base_collection_extensions_8cs_source.html | 2 +- _date_time_offset_extensions_8cs_source.html | 2 +- _discord_provider_8cs_source.html | 2 +- _dream_daemon_controller_8cs_source.html | 2 +- _dream_maker_controller_8cs_source.html | 2 +- _engine_controller_8cs_source.html | 2 +- _fetch_options_extensions_8cs_source.html | 2 +- ..._stream_handler_extensions_8cs_source.html | 2 +- _general_configuration_8cs_source.html | 2 +- ...l_configuration_extensions_8cs_source.html | 2 +- _hard_link_dmb_provider_8cs_source.html | 2 +- _host_builder_extensions_8cs_source.html | 2 +- _i_login_authority_8cs_source.html | 6 +- _i_o_manager_extensions_8cs_source.html | 2 +- _instance_controller_8cs_source.html | 2 +- _instance_manager_8cs_source.html | 2 +- ..._permission_set_controller_8cs_source.html | 2 +- _irc_provider_8cs_source.html | 2 +- _job_controller_8cs_source.html | 2 +- _job_service_8cs_source.html | 2 +- _login_authority_8cs_source.html | 44 +-- ...payload_8cs.html => _login_result_8cs.html | 10 +- ...urce.html => _login_result_8cs_source.html | 43 +-- _login_result_extensions_8cs_source.html | 38 +- _model_builder_extensions_8cs_source.html | 2 +- _mutation_8cs_source.html | 10 +- _my_sql_database_context_8cs_source.html | 2 +- _permission_set_input_8cs_source.html | 2 +- _port_allocator_8cs_source.html | 2 +- _repository_8cs_source.html | 2 +- _repository_controller_8cs_source.html | 2 +- _repository_manager_8cs_source.html | 2 +- ..._invoker_02_t_authority_03_8cs_source.html | 2 +- _result_extensions_8cs_source.html | 2 +- _root_controller_8cs_source.html | 2 +- _server_factory_8cs_source.html | 2 +- ...vice_collection_extensions_8cs_source.html | 2 +- _session_controller_8cs_source.html | 2 +- _session_controller_factory_8cs_source.html | 2 +- _setup_application_8cs_source.html | 2 +- _socket_extensions_8cs_source.html | 2 +- _swarm_controller_8cs_source.html | 2 +- _task_extensions_8cs_source.html | 2 +- _topic_client_extensions_8cs_source.html | 2 +- _transfer_controller_8cs_source.html | 2 +- _user_group_mutations_8cs_source.html | 4 +- _user_mutations_8cs_source.html | 4 +- _version_reporting_service_8cs_source.html | 2 +- _watchdog_base_8cs_source.html | 2 +- _web_host_builder_extensions_8cs_source.html | 2 +- annotated.html | 2 +- changelog.yml | 21 ++ ...erver_1_1_api_1_1_api_headers-members.html | 2 +- ...on_1_1_server_1_1_api_1_1_api_headers.html | 121 ++++--- ..._models_1_1_internal_1_1_swarm_server.html | 2 +- ...1_response_1_1_error_message_response.html | 2 +- ...odels_1_1_response_1_1_token_response.html | 4 +- ...c39cb31c7d4490f8fefe71c936aa12_icgraph.map | 4 +- ...c39cb31c7d4490f8fefe71c936aa12_icgraph.md5 | 2 +- ..._1_1_server_1_1_client_1_1_api_client.html | 8 +- ...authenticated_graph_q_l_server_client.html | 2 +- ...l_1_1_login_result_extensions-members.html | 2 +- ...graph_q_l_1_1_login_result_extensions.html | 46 +-- ...1_login_result_extensions__coll__graph.map | 2 +- ...1_login_result_extensions__coll__graph.md5 | 2 +- ...1_login_result_extensions__coll__graph.png | Bin 6397 -> 7825 bytes ...authority_1_1_login_authority-members.html | 6 +- ...ost_1_1_authority_1_1_login_authority.html | 136 +++---- ...518b11bebba6f78a360d8b45ce1fab_icgraph.map | 2 +- ...518b11bebba6f78a360d8b45ce1fab_icgraph.md5 | 1 + ...518b11bebba6f78a360d8b45ce1fab_icgraph.png | Bin ...6db9647140a1a43ebab0642e99a35b6_cgraph.map | 18 +- ...6db9647140a1a43ebab0642e99a35b6_cgraph.md5 | 1 + ...6db9647140a1a43ebab0642e99a35b6_cgraph.png | Bin 0 -> 118393 bytes ...6306f94bac8b1db1ab289f57478172b_cgraph.map | 12 +- ...6306f94bac8b1db1ab289f57478172b_cgraph.md5 | 1 + ...6306f94bac8b1db1ab289f57478172b_cgraph.png | Bin 0 -> 24830 bytes ...306f94bac8b1db1ab289f57478172b_icgraph.map | 2 +- ...306f94bac8b1db1ab289f57478172b_icgraph.md5 | 1 + ...306f94bac8b1db1ab289f57478172b_icgraph.png | Bin ...7073ecd6e9370781422dbc6a77f7a5_icgraph.md5 | 1 - ...cd65f59354b327485d6043a1ead45ef_cgraph.md5 | 1 - ...cd65f59354b327485d6043a1ead45ef_cgraph.png | Bin 121684 -> 0 bytes ...06241b4e27acc95a87d776b49a6eb39_cgraph.md5 | 1 - ...06241b4e27acc95a87d776b49a6eb39_cgraph.png | Bin 24591 -> 0 bytes ...6241b4e27acc95a87d776b49a6eb39_icgraph.md5 | 1 - ...ed76568a53f00a51e8f8180c8fd6ec_icgraph.map | 2 +- ...ed76568a53f00a51e8f8180c8fd6ec_icgraph.md5 | 2 +- ...1_controllers_1_1_api_root_controller.html | 4 +- ...ost_1_1_database_1_1_database_context.html | 2 +- ...e88d53bf1b6ac87d175d83ed39da7c_icgraph.map | 2 +- ...e88d53bf1b6ac87d175d83ed39da7c_icgraph.md5 | 2 +- ...ns_1_1_application_builder_extensions.html | 271 +++++++------- ...st_1_1_graph_q_l_1_1_mutation-members.html | 2 +- ...r_1_1_host_1_1_graph_q_l_1_1_mutation.html | 16 +- ...ayloads_1_1_login_payload__coll__graph.map | 5 - ...ayloads_1_1_login_payload__coll__graph.md5 | 1 - ...ayloads_1_1_login_payload__coll__graph.png | Bin 8732 -> 0 bytes ...oads_1_1_login_payload__inherit__graph.map | 5 - ...oads_1_1_login_payload__inherit__graph.md5 | 1 - ...oads_1_1_login_payload__inherit__graph.png | Bin 8732 -> 0 bytes ...a22ae5219a70e9285a4b7ffdb28d87_icgraph.map | 7 - ...a22ae5219a70e9285a4b7ffdb28d87_icgraph.md5 | 1 - ...a22ae5219a70e9285a4b7ffdb28d87_icgraph.png | Bin 17546 -> 0 bytes ...1_1_payloads_1_1_login_result-members.html | 12 +- ...tations_1_1_payloads_1_1_login_result.html | 96 ++--- ...payloads_1_1_login_result__coll__graph.map | 5 + ...payloads_1_1_login_result__coll__graph.md5 | 1 + ...payloads_1_1_login_result__coll__graph.png | Bin 0 -> 8727 bytes ...loads_1_1_login_result__inherit__graph.map | 5 + ...loads_1_1_login_result__inherit__graph.md5 | 1 + ...loads_1_1_login_result__inherit__graph.png | Bin 0 -> 8727 bytes ...a28bb37a560879cba3bbec9a5a0f81_icgraph.map | 7 + ...a28bb37a560879cba3bbec9a5a0f81_icgraph.md5 | 1 + ...a28bb37a560879cba3bbec9a5a0f81_icgraph.png | Bin 0 -> 17907 bytes ...1_server_1_1_host_1_1_models_1_1_user.html | 4 +- ...139051d0d6db501e37590fa1eabf16_icgraph.map | 2 +- ...139051d0d6db501e37590fa1eabf16_icgraph.md5 | 2 +- ...66a7ee34ef9b33c28f1d8ac6c631ef_icgraph.map | 2 +- ...66a7ee34ef9b33c28f1d8ac6c631ef_icgraph.md5 | 2 +- ...perties_1_1_master_versions_attribute.html | 4 +- ..._1_1_utils_1_1_serilog_context_helper.html | 2 +- classes.html | 2 +- dir_38bcdecbf90b686b5ad3fec235d65fb6.html | 2 +- files.html | 2 +- functions.html | 8 +- functions_b.html | 4 +- functions_c.html | 4 +- functions_func.html | 2 +- functions_func_c.html | 4 +- functions_func_g.html | 2 +- functions_func_l.html | 2 +- functions_func_t.html | 2 +- functions_g.html | 2 +- functions_l.html | 2 +- functions_prop_b.html | 2 +- functions_prop_u.html | 2 +- functions_t.html | 2 +- functions_u.html | 2 +- functions_vars_b.html | 2 +- hierarchy.html | 2 +- inherit_graph_194.map | 2 +- inherit_graph_194.md5 | 2 +- inherit_graph_194.png | Bin 11021 -> 11181 bytes inherits.html | 2 +- ...thority_1_1_i_login_authority-members.html | 2 +- ...t_1_1_authority_1_1_i_login_authority.html | 16 +- ...1_1_security_1_1_i_cryptography_suite.html | 2 +- ...3fd656dc42cf07e64a62844f8bcfbc_icgraph.map | 2 +- ...3fd656dc42cf07e64a62844f8bcfbc_icgraph.md5 | 2 +- ...ost_1_1_security_1_1_i_identity_cache.html | 4 +- ...5ca85c86ab06d4aa3d90f3db2c0f32_icgraph.map | 4 +- ...5ca85c86ab06d4aa3d90f3db2c0f32_icgraph.md5 | 2 +- ...ty_1_1_i_session_invalidation_tracker.html | 2 +- ...0fb292e7b1fc5f0659014ced9a2a14_icgraph.map | 2 +- ...0fb292e7b1fc5f0659014ced9a2a14_icgraph.md5 | 2 +- ...ecurity_1_1_i_system_identity_factory.html | 2 +- ...84aa5361ad7005e1d53606b17f4e9e_icgraph.map | 2 +- ...84aa5361ad7005e1d53606b17f4e9e_icgraph.md5 | 2 +- ...host_1_1_security_1_1_i_token_factory.html | 2 +- ...5633f0c977dad0c2979764d1000598_icgraph.map | 2 +- ...5633f0c977dad0c2979764d1000598_icgraph.md5 | 2 +- ...ity_1_1_o_auth_1_1_i_o_auth_providers.html | 2 +- ...df5b32c769e3c6f01ae709e3221694_icgraph.map | 2 +- ...df5b32c769e3c6f01ae709e3221694_icgraph.md5 | 2 +- ...m_1_1_i_assembly_information_provider.html | 2 +- ..._graph_q_l_1_1_mutations_1_1_payloads.html | 4 +- namespaces.html | 2 +- search/all_15.js | 2 +- search/all_16.js | 2 +- search/all_2.js | 12 +- search/all_3.js | 4 +- search/all_4.js | 8 +- search/all_8.js | 2 +- search/all_d.js | 6 +- search/classes_b.js | 2 +- search/files_c.js | 2 +- search/functions_0.js | 2 +- search/functions_13.js | 2 +- search/functions_2.js | 4 +- search/functions_6.js | 2 +- search/functions_b.js | 2 +- search/properties_1.js | 2 +- search/properties_13.js | 2 +- search/properties_2.js | 2 +- search/variables_1.js | 2 +- 200 files changed, 903 insertions(+), 868 deletions(-) rename _login_payload_8cs.html => _login_result_8cs.html (94%) rename _login_payload_8cs_source.html => _login_result_8cs_source.html (67%) rename class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a727073ecd6e9370781422dbc6a77f7a5_icgraph.map => class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a51518b11bebba6f78a360d8b45ce1fab_icgraph.map (76%) create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a51518b11bebba6f78a360d8b45ce1fab_icgraph.md5 rename class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a727073ecd6e9370781422dbc6a77f7a5_icgraph.png => class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a51518b11bebba6f78a360d8b45ce1fab_icgraph.png (100%) rename class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a9cd65f59354b327485d6043a1ead45ef_cgraph.map => class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a56db9647140a1a43ebab0642e99a35b6_cgraph.map (88%) create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a56db9647140a1a43ebab0642e99a35b6_cgraph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a56db9647140a1a43ebab0642e99a35b6_cgraph.png rename class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_ab06241b4e27acc95a87d776b49a6eb39_cgraph.map => class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a66306f94bac8b1db1ab289f57478172b_cgraph.map (73%) create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a66306f94bac8b1db1ab289f57478172b_cgraph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a66306f94bac8b1db1ab289f57478172b_cgraph.png rename class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_ab06241b4e27acc95a87d776b49a6eb39_icgraph.map => class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a66306f94bac8b1db1ab289f57478172b_icgraph.map (75%) create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a66306f94bac8b1db1ab289f57478172b_icgraph.md5 rename class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_ab06241b4e27acc95a87d776b49a6eb39_icgraph.png => class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a66306f94bac8b1db1ab289f57478172b_icgraph.png (100%) delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a727073ecd6e9370781422dbc6a77f7a5_icgraph.md5 delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a9cd65f59354b327485d6043a1ead45ef_cgraph.md5 delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a9cd65f59354b327485d6043a1ead45ef_cgraph.png delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_ab06241b4e27acc95a87d776b49a6eb39_cgraph.md5 delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_ab06241b4e27acc95a87d776b49a6eb39_cgraph.png delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_ab06241b4e27acc95a87d776b49a6eb39_icgraph.md5 delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_payload__coll__graph.map delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_payload__coll__graph.md5 delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_payload__coll__graph.png delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_payload__inherit__graph.map delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_payload__inherit__graph.md5 delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_payload__inherit__graph.png delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_payload_acca22ae5219a70e9285a4b7ffdb28d87_icgraph.map delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_payload_acca22ae5219a70e9285a4b7ffdb28d87_icgraph.md5 delete mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_payload_acca22ae5219a70e9285a4b7ffdb28d87_icgraph.png rename class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_payload-members.html => class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_result-members.html (78%) rename class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_payload.html => class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_result.html (69%) create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_result__coll__graph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_result__coll__graph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_result__coll__graph.png create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_result__inherit__graph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_result__inherit__graph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_result__inherit__graph.png create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_result_a11a28bb37a560879cba3bbec9a5a0f81_icgraph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_result_a11a28bb37a560879cba3bbec9a5a0f81_icgraph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_graph_q_l_1_1_mutations_1_1_payloads_1_1_login_result_a11a28bb37a560879cba3bbec9a5a0f81_icgraph.png diff --git a/_administration_controller_8cs_source.html b/_administration_controller_8cs_source.html index adfd9c8216..ccc10188f0 100644 --- a/_administration_controller_8cs_source.html +++ b/_administration_controller_8cs_source.html @@ -523,7 +523,7 @@ $(document).ready(function() { init_codefold(0); });
Go to the source code of this file.
+Go to the source code of this file.
Classes | |
| class | Tgstation.Server.Host.GraphQL.Mutations.Payloads.LoginPayload |
| Success response for a login attempt. More... | |
| class | Tgstation.Server.Host.GraphQL.Mutations.Payloads.LoginResult |
| Success response for a login attempt. More... | |
diff --git a/_login_payload_8cs_source.html b/_login_result_8cs_source.html
similarity index 67%
rename from _login_payload_8cs_source.html
rename to _login_result_8cs_source.html
index e63b25dd3d..ae3692be82 100644
--- a/_login_payload_8cs_source.html
+++ b/_login_result_8cs_source.html
@@ -5,7 +5,7 @@
-LoginPayload.cs LoginResult.cs
+Go to the documentation of this file.
diff --git a/_login_result_extensions_8cs_source.html b/_login_result_extensions_8cs_source.html
index c780437a96..5b335bd440 100644
--- a/_login_result_extensions_8cs_source.html
+++ b/_login_result_extensions_8cs_source.html
@@ -129,30 +129,28 @@ $(document).ready(function() { init_codefold(0); });
-
-
-
-
-
-
-
-
-
-
@@ -91,34 +91,35 @@ $(document).ready(function() { init_codefold(0); });
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
+
Represents a JWT returned by the API. Definition TokenResponse.cs:9 Success response for a login attempt. Definition LoginPayload.cs:12 required string Bearer The JSON Web Token (JWT) to use as a Bearer token for accessing the server. Contains an expiry time. Definition LoginPayload.cs:17 TokenResponse ToApi() Success response for a login attempt. Definition LoginResult.cs:12 TokenResponse ToApi() required string Bearer The JSON Web Token (JWT) to use as a Bearer token for accessing the server. Contains an expiry time. Definition LoginResult.cs:18 Definition User.cs:17 Represents a host-side model that may be transformed into a TApiModel . Definition ILegacyApiTransformable{TApiModel}.cs:8 Definition ChatBot.cs:9 65 throw new AuthenticationException($"Null bearer field and {errors.Count} non-ErrorMessage errors:{(errors.Count > 0 ? $"{Environment.NewLine}\t- {String.Join($"{Environment.NewLine}\t- ", errors)}" : String.Empty)}");
-
-
-
-
+
+
+
+
+
+
+
+
+ 64 throw new AuthenticationException($"Null bearer field and {errors.Count} non-ErrorMessage errors:{(errors.Count > 0 ? $"{Environment.NewLine}\t- {String.Join($"{Environment.NewLine}\t- ", errors)}" : String.Empty)}");
+
+
+
+
Extensions for ILoginResult. Definition LoginResultExtensions.cs:14 static JsonWebToken EnsureSuccess(this IOperationResult< ILoginResult > loginResult, ILogger logger) Check a given loginResult for errors. Definition LoginResultExtensions.cs:22 Definition ChatChannel.cs:6 Exception representing ErrorMessageResponses. Definition ErrorMessageException.cs:14 ValueTask< LoginPayload > Login([Service] IGraphQLAuthorityInvoker< ILoginAuthority > loginAuthority, CancellationToken cancellationToken) Generate a JWT for authenticating with server. This is the only operation that accepts and required b... Definition Mutation.cs:32 Success response for a login attempt. Definition LoginPayload.cs:12 ValueTask< LoginResult > Login([Service] IGraphQLAuthorityInvoker< ILoginAuthority > loginAuthority, CancellationToken cancellationToken) Generate a JWT for authenticating with server. This is the only operation that accepts and required b... Definition Mutation.cs:32 Invokes TAuthority s from GraphQL endpoints. Definition IGraphQLAuthorityInvoker{TAuthority}.cs:15 Definition ChatBot.cs:9 @ List User may list files if the Models.Instance allows it. Definition Application.cs:77 EventType Types of events. Mirror in tgs.dm. Prefer last listed name for script. Definition EventType.cs:7 Definition IJobManager.cs:8 Definition ChatBot.cs:9 Definition IJobManager.cs:8 ValueTask< IActionResult > Invoke(ApiController controller, Func< TAuthority, ValueTask< AuthorityResponse > > authorityInvoker) Invoke a TAuthority method with no success result. static string LogFormat(this IResult result, uint level=0) Converts a given result into a log entry string. Definition ResultExtensions.cs:23 Definition ApiHeaders.cs:20 Definition Application.cs:77 Handles mapping connection IDs to Users for a given THub . Definition IHubConnectionMapper.cs:19 Definition Application.cs:77 Definition IJobManager.cs:8 For identifying the current platform. Definition IPlatformIdentifier.cs:9 Reads and writes to Streams associated with FileTicketResponses. Definition IFileTransferStreamHandler.cs:14 @ Unauthorized The swarm private keys didn't match. static readonly TaskCompletionSource InfiniteTaskCompletionSource A TaskCompletionSource that never completes. Definition TaskExtensions.cs:13 Task Delay(TimeSpan timeSpan, CancellationToken cancellationToken) Create a Task that completes after a given timeSpan . ValueTask< AuthorityResponse > DeleteEmpty(long id, CancellationToken cancellationToken) Deletes an empty UserGroup. @ Id Lookup the Api.Models.EntityId.Id of the Models.PermissionSet. Definition Application.cs:77 Definition Application.cs:77 Definition IJobManager.cs:8 Definition Application.cs:77 ColonSeparator | Tgstation.Server.Api.ApiHeaders | privatestatic | Compatible() | Tgstation.Server.Api.ApiHeaders | InstanceIdHeader | Tgstation.Server.Api.ApiHeaders | static | | BearerAuthenticationScheme | Tgstation.Server.Api.ApiHeaders | static | CheckCompatibility(Version otherVersion) | Tgstation.Server.Api.ApiHeaders | static | Compatible(Version? alternateApiVersion=null) | Tgstation.Server.Api.ApiHeaders | CreateApiVersionHeader() | Tgstation.Server.Api.ApiHeaders | private | InstanceId | Tgstation.Server.Api.ApiHeaders | ||||
| ApiHeaders (RequestHeaders requestHeaders, bool ignoreMissingAuth, bool allowEventStreamAccept) | |||||||||||||||||||||||||
| Initializes a new instance of the ApiHeaders class. | |||||||||||||||||||||||||
| bool | Compatible () | ||||||||||||||||||||||||
| Checks if the ApiVersion is compatible with Version. | |||||||||||||||||||||||||
| bool | Compatible (Version? alternateApiVersion=null) | ||||||||||||||||||||||||
| Checks if the ApiVersion is compatible with Version. | |||||||||||||||||||||||||
| void | SetRequestHeaders (HttpRequestHeaders headers, long? instanceId=null) | ||||||||||||||||||||||||
| Set HttpRequestHeaders using the ApiHeaders. This initially clears headers . | |||||||||||||||||||||||||
| bool Tgstation.Server.Api.ApiHeaders.Compatible | ( | -) | +Version? | +alternateApiVersion = null | ) | ||||||||||||||||||||
Checks if the ApiVersion is compatible with Version.
+| alternateApiVersion | The System.Version that can alternatively be used as the ApiVersion. |
true if the API is compatible, false otherwise.Create the stringified for of the ApiVersionHeader.
Referenced by Tgstation.Server.Api.ApiHeaders.SetHubConnectionHeaders(), and Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
+Referenced by Tgstation.Server.Api.ApiHeaders.SetHubConnectionHeaders(), and Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
Definition at line 401 of file ApiHeaders.cs.
-Definition at line 402 of file ApiHeaders.cs.
+References Tgstation.Server.Api.ApiHeaders.ApiVersionHeader, Tgstation.Server.Api.ApiHeaders.ApplicationJsonMime, Tgstation.Server.Api.ApiHeaders.CreateApiVersionHeader(), and Tgstation.Server.Api.ApiHeaders.RawUserAgent.
@@ -881,33 +888,33 @@ Here is the caller graph for this function:Definition at line 369 of file ApiHeaders.cs.
-Definition at line 370 of file ApiHeaders.cs.
+Definition at line 29 of file ApiHeaders.cs.
-Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Api.ApiHeaders.SetHubConnectionHeaders(), Tgstation.Server.Api.ApiHeaders.SetRequestHeaders(), and Tgstation.Server.Client.GraphQL.GraphQLServerClientFactory.SetupServiceProvider().
+Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Api.ApiHeaders.SetHubConnectionHeaders(), Tgstation.Server.Api.ApiHeaders.SetRequestHeaders(), and Tgstation.Server.Client.GraphQL.GraphQLServerClientFactory.SetupServiceProvider().
@@ -990,7 +997,7 @@ Here is the caller graph for this function:Definition at line 59 of file ApiHeaders.cs.
-Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Client.ApiClient.RunRequest< TBody, TResult >(), Tgstation.Server.Api.ApiHeaders.SetHubConnectionHeaders(), and Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
+Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Client.ApiClient.RunRequest< TBody, TResult >(), Tgstation.Server.Api.ApiHeaders.SetHubConnectionHeaders(), and Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
@@ -1046,7 +1053,7 @@ Here is the caller graph for this function:Definition at line 49 of file ApiHeaders.cs.
-Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Host.Utils.SwaggerConfiguration.Configure(), Tgstation.Server.Client.GraphQL.GraphQLServerClientFactory.CreateFromLogin(), and Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
+Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Host.Utils.SwaggerConfiguration.Configure(), Tgstation.Server.Client.GraphQL.GraphQLServerClientFactory.CreateFromLogin(), and Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
@@ -1074,7 +1081,7 @@ Here is the caller graph for this function:Definition at line 44 of file ApiHeaders.cs.
-Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Host.Utils.SwaggerConfiguration.Configure(), Tgstation.Server.Client.GraphQL.GraphQLServerClientFactory.CreateFromToken(), Tgstation.Server.Host.IO.FileDownloader.DownloadFile(), Tgstation.Server.Api.ApiHeaders.SetRequestHeaders(), and Tgstation.Server.Host.Security.OAuth.GenericOAuthValidator.ValidateResponseCode().
+Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Host.Utils.SwaggerConfiguration.Configure(), Tgstation.Server.Client.GraphQL.GraphQLServerClientFactory.CreateFromToken(), Tgstation.Server.Host.IO.FileDownloader.DownloadFile(), Tgstation.Server.Api.ApiHeaders.SetRequestHeaders(), and Tgstation.Server.Host.Security.OAuth.GenericOAuthValidator.ValidateResponseCode().
@@ -1130,7 +1137,7 @@ Here is the caller graph for this function:Definition at line 34 of file ApiHeaders.cs.
-Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Host.Utils.SwaggerConfiguration.Apply(), Tgstation.Server.Host.Utils.SwaggerConfiguration.Apply(), and Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
+Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Host.Utils.SwaggerConfiguration.Apply(), Tgstation.Server.Host.Utils.SwaggerConfiguration.Apply(), and Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
@@ -1158,7 +1165,7 @@ Here is the caller graph for this function:Definition at line 54 of file ApiHeaders.cs.
-Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Host.Utils.SwaggerConfiguration.Configure(), Tgstation.Server.Client.GraphQL.GraphQLServerClientFactory.CreateFromOAuth(), and Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
+Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Host.Utils.SwaggerConfiguration.Configure(), Tgstation.Server.Client.GraphQL.GraphQLServerClientFactory.CreateFromOAuth(), and Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
@@ -1186,7 +1193,7 @@ Here is the caller graph for this function:Definition at line 39 of file ApiHeaders.cs.
-Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Host.Utils.SwaggerConfiguration.Apply(), Tgstation.Server.Api.ApiHeaders.SetRequestHeaders(), and Tgstation.Server.Client.GraphQL.GraphQLServerClientFactory.SetupServiceProvider().
+Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Host.Utils.SwaggerConfiguration.Apply(), Tgstation.Server.Api.ApiHeaders.SetRequestHeaders(), and Tgstation.Server.Client.GraphQL.GraphQLServerClientFactory.SetupServiceProvider().
@@ -1301,7 +1308,7 @@ Here is the caller graph for this function:Definition at line 84 of file ApiHeaders.cs.
Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Host.Controllers.ApiController.HookExecuteAction(), Tgstation.Server.Api.ApiHeaders.SetRequestHeaders(), and Tgstation.Server.Host.Security.AuthenticationContextFactory.ValidateToken().
+Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Host.Controllers.ApiController.HookExecuteAction(), Tgstation.Server.Api.ApiHeaders.SetRequestHeaders(), and Tgstation.Server.Host.Security.AuthenticationContextFactory.ValidateToken().
@@ -1329,7 +1336,7 @@ Here is the caller graph for this function:Definition at line 129 of file ApiHeaders.cs.
-Referenced by Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
+Referenced by Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
@@ -1358,7 +1365,7 @@ Here is the caller graph for this function:Definition at line 119 of file ApiHeaders.cs.
Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Api.ApiHeaders.ApiHeaders(), and Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
+Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Api.ApiHeaders.ApiHeaders(), and Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
@@ -1443,7 +1450,7 @@ Here is the caller graph for this function:Definition at line 94 of file ApiHeaders.cs.
Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Host.Controllers.ApiController.HookExecuteAction(), and Tgstation.Server.Api.ApiHeaders.SetHubConnectionHeaders().
+Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Host.Controllers.ApiController.HookExecuteAction(), and Tgstation.Server.Api.ApiHeaders.SetHubConnectionHeaders().
@@ -1472,7 +1479,7 @@ Here is the caller graph for this function:Definition at line 104 of file ApiHeaders.cs.
Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Client.ApiClient.RefreshToken(), and Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
+Referenced by Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Api.ApiHeaders.ApiHeaders(), Tgstation.Server.Client.ApiClient.RefreshToken(), and Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
@@ -1500,7 +1507,7 @@ Here is the caller graph for this function:Definition at line 89 of file ApiHeaders.cs.
-Referenced by Tgstation.Server.Client.ApiClient.RefreshToken(), and Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
+Referenced by Tgstation.Server.Client.ApiClient.RefreshToken(), and Tgstation.Server.Api.ApiHeaders.SetRequestHeaders().
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_swarm_server.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_swarm_server.html index 2bc451a83c..8e47698b02 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_swarm_server.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_swarm_server.html @@ -264,7 +264,7 @@ PropertiesDefinition at line 26 of file SwarmServer.cs.
Referenced by Tgstation.Server.Host.Swarm.SwarmService.CommitUpdate(), Tgstation.Server.Host.Controllers.InstanceController.Create(), Tgstation.Server.Host.Controllers.InstanceController.CreateDefaultInstance(), Tgstation.Server.Host.Controllers.InstanceController.Delete(), Tgstation.Server.Host.Utils.PortAllocator.GetAvailablePort(), Tgstation.Server.Host.Controllers.InstanceController.GetId(), Tgstation.Server.Host.Controllers.InstanceController.GrantPermissions(), Tgstation.Server.Host.Swarm.SwarmService.HealthCheckNodes(), Tgstation.Server.Host.Components.InstanceManager.Initialize(), Tgstation.Server.Host.Swarm.SwarmService.Initialize(), Tgstation.Server.Host.Controllers.InstanceController.List(), Tgstation.Server.Host.Swarm.SwarmService.PrepareSwarmRequest(), Tgstation.Server.Host.Swarm.SwarmService.PrepareUpdateImpl(), Tgstation.Server.Host.Swarm.SwarmService.RegisterNode(), Tgstation.Server.Host.Database.DatabaseSeeder.SanitizeDatabase(), Tgstation.Server.Host.Swarm.SwarmService.SendUpdatedServerListToNodes(), Tgstation.Server.Host.GraphQL.Types.SwarmNode.SwarmNode(), Tgstation.Server.Api.Models.Internal.SwarmServer.SwarmServer(), Tgstation.Server.Host.Swarm.SwarmService.SwarmService(), Tgstation.Server.Host.Controllers.InstanceController.Update(), Tgstation.Server.Host.Extensions.ApplicationBuilderExtensions.UseAdditionalRequestLoggingContext(), and Tgstation.Server.Host.Security.AuthenticationContextFactory.ValidateToken().
+Referenced by Tgstation.Server.Host.Swarm.SwarmService.CommitUpdate(), Tgstation.Server.Host.Controllers.InstanceController.Create(), Tgstation.Server.Host.Controllers.InstanceController.CreateDefaultInstance(), Tgstation.Server.Host.Controllers.InstanceController.Delete(), Tgstation.Server.Host.Utils.PortAllocator.GetAvailablePort(), Tgstation.Server.Host.Controllers.InstanceController.GetId(), Tgstation.Server.Host.Controllers.InstanceController.GrantPermissions(), Tgstation.Server.Host.Swarm.SwarmService.HealthCheckNodes(), Tgstation.Server.Host.Components.InstanceManager.Initialize(), Tgstation.Server.Host.Swarm.SwarmService.Initialize(), Tgstation.Server.Host.Controllers.InstanceController.List(), Tgstation.Server.Host.Swarm.SwarmService.PrepareSwarmRequest(), Tgstation.Server.Host.Swarm.SwarmService.PrepareUpdateImpl(), Tgstation.Server.Host.Swarm.SwarmService.RegisterNode(), Tgstation.Server.Host.Database.DatabaseSeeder.SanitizeDatabase(), Tgstation.Server.Host.Swarm.SwarmService.SendUpdatedServerListToNodes(), Tgstation.Server.Host.GraphQL.Types.SwarmNode.SwarmNode(), Tgstation.Server.Api.Models.Internal.SwarmServer.SwarmServer(), Tgstation.Server.Host.Swarm.SwarmService.SwarmService(), Tgstation.Server.Host.Controllers.InstanceController.Update(), Tgstation.Server.Host.Extensions.ApplicationBuilderExtensions.UseAdditionalRequestLoggingContext(), and Tgstation.Server.Host.Security.AuthenticationContextFactory.ValidateToken().
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_response_1_1_error_message_response.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_response_1_1_error_message_response.html index 00703d7b5c..39386744bf 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_response_1_1_error_message_response.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_response_1_1_error_message_response.html @@ -259,7 +259,7 @@ PropertiesDefinition at line 21 of file ErrorMessageResponse.cs.
Referenced by Tgstation.Server.Api.Models.Response.ErrorMessageResponse.ErrorMessageResponse(), and Tgstation.Server.Host.Authority.LoginAuthority.GenerateHeadersExceptionResponse().
+Referenced by Tgstation.Server.Api.Models.Response.ErrorMessageResponse.ErrorMessageResponse(), and Tgstation.Server.Host.Authority.LoginAuthority.GenerateHeadersExceptionResponse().
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_response_1_1_token_response.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_response_1_1_token_response.html index 65f3751640..3dd71dc3ab 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_response_1_1_token_response.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_response_1_1_token_response.html @@ -129,9 +129,9 @@ Here is the caller graph for this function: - + - + diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_response_1_1_token_response_a8fc39cb31c7d4490f8fefe71c936aa12_icgraph.map b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_response_1_1_token_response_a8fc39cb31c7d4490f8fefe71c936aa12_icgraph.map index d28b9ac46e..35b35c01ac 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_response_1_1_token_response_a8fc39cb31c7d4490f8fefe71c936aa12_icgraph.map +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_response_1_1_token_response_a8fc39cb31c7d4490f8fefe71c936aa12_icgraph.map @@ -2,8 +2,8 @@ - + - + diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_response_1_1_token_response_a8fc39cb31c7d4490f8fefe71c936aa12_icgraph.md5 b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_response_1_1_token_response_a8fc39cb31c7d4490f8fefe71c936aa12_icgraph.md5 index d0e7129346..40dfc396de 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_response_1_1_token_response_a8fc39cb31c7d4490f8fefe71c936aa12_icgraph.md5 +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_response_1_1_token_response_a8fc39cb31c7d4490f8fefe71c936aa12_icgraph.md5 @@ -1 +1 @@ -09ad91bf877987229bd8804e9475a945 \ No newline at end of file +18adb7fae7fee2cee2fcadad657acf8b \ No newline at end of file diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_client.html b/class_tgstation_1_1_server_1_1_client_1_1_api_client.html index 6fa537328f..23244fb79a 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_client.html @@ -1109,7 +1109,7 @@ Static Private AttributesReferences Tgstation.Server.Client.ApiClient.Headers, Tgstation.Server.Api.Routes.JobsHub, Tgstation.Server.Client.ApiClient.SerializerSettings, Tgstation.Server.Api.ApiHeaders.SetHubConnectionHeaders(), Tgstation.Server.Client.ApiClient.Timeout, and Tgstation.Server.Client.ApiClient.Url.
+References Tgstation.Server.Client.ApiClient.Headers, Tgstation.Server.Api.Routes.JobsHub, Tgstation.Server.Client.ApiClient.SerializerSettings, Tgstation.Server.Api.ApiHeaders.SetHubConnectionHeaders(), Tgstation.Server.Client.ApiClient.Timeout, and Tgstation.Server.Client.ApiClient.Url.
References Tgstation.Server.Common.Http.CachedResponseStream.Create(), Tgstation.Server.Api.ApiHeaders.SetRequestHeaders(), and Tgstation.Server.Common.Extensions.ValueTaskExtensions.WhenAll().
+References Tgstation.Server.Common.Http.CachedResponseStream.Create(), Tgstation.Server.Api.ApiHeaders.SetRequestHeaders(), and Tgstation.Server.Common.Extensions.ValueTaskExtensions.WhenAll().
This is the complete list of members for Tgstation.Server.Client.GraphQL.LoginResultExtensions, including all inherited members.
| bearer | Tgstation.Server.Client.GraphQL.LoginResultExtensions | private |
| Bearer | Tgstation.Server.Client.GraphQL.LoginResultExtensions | private |
| EnsureSuccess(this IOperationResult< ILoginResult > loginResult, ILogger logger) | Tgstation.Server.Client.GraphQL.LoginResultExtensions | static |

Private Attributes | |
| return | bearer |
| return data.LoginResult. | Bearer |
Extensions for ILoginResult.
@@ -195,29 +195,25 @@ Private AttributesReferences Tgstation.Server.Client.GraphQL.LoginResultExtensions.bearer.
-| return Tgstation.Server.Client.GraphQL.LoginResultExtensions.bearer | +return data.LoginResult. Tgstation.Server.Client.GraphQL.LoginResultExtensions.Bearer |
Definition at line 71 of file LoginResultExtensions.cs.
- -Referenced by Tgstation.Server.Client.GraphQL.LoginResultExtensions.EnsureSuccess().
+Definition at line 70 of file LoginResultExtensions.cs.
0eb*P739?AD_4TMx|D0)4?KK!g@J(-suPp} z+Mtb7E(F@z3GB6@6+>-$W(E$ENPL04D=I6?f~#?zj_&f+t05p8PfvIH&}tFcTb3sv zAOKOvX~mW{`Go5NBd0>BL@J7!9}_&*m(kH9`X&oYOaD}0EBim#?9aW2<{wb?x9Nr5 zcv}aA*grQphyhToe`Vw3M2oLZz>x>XD{2Os8dk>trlaO!mO5_xdizep?C+IZVYATt z3Mwj*U!K(1+6}gL=PZi)Db)rQtei;WlJltLQP30^N}B>%CnF5$Aj$8uwId&y@k@0A zE}>s-8(-1-o2ptUTwAW&_21*t|0~7^JxPiVXAUUj_ehgaET~@?FNI~fDfXm~xKjRO eEpS}fyTFL0bMGt|`wUzfL6qdx<=)Afz4$*N!u*(2nf=qSit)PV~aV1qduisexCM$8Zc8+_S0&KJhAJ2b01$ZF&!tO zIym^jTKBfg+M}a@2{*1G@m=3V>s|M(YVNhb7mvb7rS39?k>=K@>x+ccJ{A)T5E!m3 z_+`U-^7!%N*g6kV$2XqJc*EMd1_sX0xVW~bM_mQ*I61%Azba3T&ExtIX8#z8)Q_PT zO}5SstSykXeH}qek3QZ1rOibzZ}7R+14{}Muh4PNOfud@O7{ax1}PQGJ+`nrivM@Y zkn=-EM*n7c+rp^XKdg`LP2yWxTDoBB`%CNyED?$XdbJJ@ExKc$Ffn1nV0z6yyxnn( z) e3tX$ zZDlPj3is9i KhCqXAoiz7AmI;#We^5*7`-&1kfee|TNim=zn%F2?Fm%lZfCr_eXsxRx~BaGGB z+8P!XR$=}FUrbD_qPjXyr@V21@%iHJM5)0;K|6}RWG;S4oB59@R%3Dvop={6o8cTu ztlujuu7|78$IQ%UfAZq6cxYngn!L+9vPxPnlOGDZ KUzn1jJ$7* z53^_5Z9XI(92`V+FDxts{2kXZYzxY~IN3$jIh)MX*yFt_H*Oi;{0r&>i^r<}!6*vV z;I@LVt*w1}etwXBjVYW7;*=o1d)E{sG+9?xgGjNSYP2o*nxjt(Cg}fUbYOr;NJt1} zVQp>wj_{$mAKilox{hs0jNTh#J!9IsSs9)GxlrAbs_q#z`;2(3x0c%c9OE;~VlgCV zXJ>!;;p4|;v&b-eYZn_lbq6E$xvfy_sN8%5b2=slMFTumt~qqDtE6%_(}vpMvObfn z;Gh uF*T5z*oY#NBLYIuVxffLGkaztt4>lbSXsyeOv z$XqIP)bOPtFjUaW*Xkw1W7AypaYc+T^BrVsZyWx}v+4C-NqHz(u-IXF?QFoosv!Xe zk)_BJA$odt{X{=9*G5zS*&_|-c$d=1+yUI)d2Y!{>{UA(xBO8hFfy6JW&ADd^4>nm zy(vDPm+c4lBj176=F<8lP};F<`LI+57K3`m_`&9`V!gKMlQjGpm4ch|KX9R`^pKbO zSH#|&H;wCYqK1!MaDK4@$?t0z`NgjMgPBH^tc-G404_4lpqiFgB$0fJEfrK}t={R>$mo=Ql?IfGHjJ*-xlKwd= )Z(^DUkkox-iJq!k;k~dQSrM_Mm z^8C3IeF(x<$-!aEDfF8QOe1j{H*{Iw&~UCSJA1PfX=e!zFObNf+0W7uJAy}=1&)1= z@8r{23^~7!U!$W-uc)oH^yet+>Bz{?1-5CldwC-^hO}T-BvbjwjfxK+K3q*qOhDfB z?C LQ&09Qc_po@T$E(EbR7V_63G<$qB6CB0iqX-~Cd{Nz`Ggf_9*d zQlAY}gMy^5s-$n(D4L9#I>j4XN?MxHCha&j_o>nbLO^0Hoam0oYFNpBoJzv} h8l2C@6G=)=ZpBJ0LW(G$zS^&d)>T$c+m e=oT`so-R3NWXw>c>h>ur1mQ^)w=}oVdNceS(d{p9x2{j`oE|08Oj9X{e=Ig zSN`2Fxmv~*rr+L5%H{2IbKQ?7b&NzJH)|cH-4K{6j<(K+F>)lb8d id*?Y7Ya7fh9&>$=-%I~vhniX_z`@Y-+T4vnR3wlsd zO|5%ohK8G)n^iUApQa{Jzm_a$`in}h?HQ|Sxm>Rp)%u I&nedCEJ27H^wJMMn0~i3Wa>;HnyfJLjgDOTXYcu+OGH9q|(sPNK8!R zahj`VrT_Bzxl!ZyTF2SD1Oyg<_W)sDUG4@~JI#wM1RM_FJEq&wj;}$;pe_ow*47aT z3FNA(s#CMG7H~M+Z|nE(v7*+)!$aN&gnymv?d|(2%sOcVy?k*)-zcX%=QZoNeg1dz z=AyuhWB6#kA`2Uv(6n&OXImQo<1I7v_sD1l2o0b*FtJa9_EcV8Ua(lHw13}`s_{oh zjs4_5v9YVi+p|X-;{-66tGoNJhPA9;@3~t6ge7Az0b&qHD!9_9$qT+YQJP;^SZ&cw z%&PL~m5U2cp=u_2s?uVv#Xm(gQ-l{V@jD_~?SkzP>|45x9>wb}>l@==0?yY9Ev>B3 zXmkgVgAaL3u|UkhaLa3J@`i?V1qB7S@7&>aoDrZ{xh_oAH!#RUtqc1eu*^4kcMlE{ zV+98XV=gbD+oPkSV5+PT2t8o!t~kcH>}*Cb5{U%nLt%DM8VJDh(o#ryIX6%gI1H>u z_T?>In6tz6**fRU3%x4Kdm@>{AwYW^92`6VO%?9w?C3afu+qm1^iqR+_g4&%LX@={ zP>Zx#x%>C;!xoq|s;wl>ehv)4e|5zGUAA}9cAa^3d69mMKUr?Fwzu5bpDq*!`=UMa zSsL$nXP%%P+-`qw&vY>3y;BQJOt)b90-j zcV(82AYLi0TQCPDBqJl^vN^$p#mC22@4d_LMW@_qBv&>=#4`$%62~U5`>M*3A0+s4 z(?qY%iC#XIZn>K=SOAipojug(xp@~KAAK_r=5*g-u{D!1=oH(>$Jlqd i2W@0~m`jlte73qG3@eK$FP>E1e6WhO?^4tiF!G9YUH`kUXflaMzVj|hN z#cz3iT`?#qC@JVhTrOT63xQnM13_mJ_?Hr_)U5v#Z#1JsR<-pIdSjzkQw?$_1SDTl zQZfVLPbDECflok?%5O~!9u$<6`}^ID3CYP_<-wQsgV_>8ADE=oDGH1)6RibkHV ybBH1;p;u)l?a6B6N{TEzmg@?&x`1vm|m$}XYB zfX*mNPL m7C{o`Y+sR}a?3D@%@Tk+GSTN5REnk&-o= !L3t`4Z_=;(k=5WJ$(K)A0B z!n)c5FJ1tXfLr8JW~C}Ai46i^F_0!mDeeQ(@-#}y)s+{ZlGxShul{U_#iIaiZK@Y9 zUi@BN)js=xd*@E2_pb5W{QUmG0bl0(@w#lj!1JTepdmBFe5<6)ZPU5{rrvzn6jT$V zm*U8>ftVgz&hkOuD>G{90?}cA_KXF%x)$TO+^0Zf?ZpLSLZhPz32|=$bVy82);?ul z291XW)?@~UhmY8>aB{u};{%xc@#6< LJb8a&p?K M&zSug@^(0U+qOmxcnJr0t6%n76X2`(BjW; zJxE6(D_MxDv>ADPyt_CA^6+P_fuG;1KL THwU#RWo&F*v#Gbp+sD~9FD)(2`JEYwbSoicU=WwpNL1^M zU8Lm%wb^2 z@TH&xW-qi~g|tlpG%A>OgZrA>QaiSryZib=i)irGVYYp9BDahI{3FD0<>5mq%xj1U zYA*crj!hNB(8`K6JMj3SkkedFef=k}Ix-rXULexb?e1a$6a{+03Y53itfjTJI~dey zp;-|GXJ==JkU{K|WGHUxO!Gl6XMd(>3IN&W3EoXqZP|t9zHs^A~v9rHlCQqvh20H00ou9-MshK zHucLF&e+)48*aGIET{G9^N3-z9CMTRE~~KclmIzn`@ld9D2!^i6(vBn>x*r{)!nbt z&y%~qIxjA0?fm}z`+N0}xH9N6FuMwc4w%k6O>som5h^jQQQ%9lpvW=^>outNGgS7K z*2+r&%9^}(o&`@9LCR}ZUVuo@i+U~n`qdduKwVK=%lh=`Kau2YY3Hg63QK??*|@pm za&jIa)Us9W>^LN@PMOQwuKbd80Y8P}5~2IJ+Z+zU_;s#sttuzH4Go2^@OpBQBUNB9 z5Y)S$xXZEolV8ESeOkS?^?~z%9vZ!|Q!cP`+ZbavH#gU94R{F*PQd;TY5))@u<^ig zDUkn6L4%@tQ>$UC=yQSI>bY}?9NS!}LEWFx0s;^z1e}CHjA!6{a@_;b8GTUj1R#-& ztZXI7BcQYTfHOW(?;RE%9#S7&vRu^q%`MK(&Sd1|%z=mlBIIOeo*Ceb(1Onml1-GG zsF|8Rs&iiK0)Vx(FxJ@_3T$3incE%sii9RY<=fCu9MC497l3eLrx)=s1)4)8Q-spQ z#3Vi;Au=io=|v?6m?aK!{NM(mAdt+P9yq f|wKezCJ+rIRZVB|(mI^?pn|fSHF)2F~0c@FlvnOPo z<=b^6i&J5XLU1^OmiAo^r&dr^UH$oynUF@{pI_Z^)s{VEhDJu5N1B>*f{x_&_M0N5 zn$TUS=FuW4kkDwf`PTL}=d;-ccQ!>uMMO7X?ymXy7Ny9j2Dfy+YO8^co}PP|s@?gD z2~$np++g1eOC^=>4lOOM-_ajQ5Ig9~;~MB!$BoE(!K7;suq)$W`x;)8)D8ly?K|-H z4uOk{%hLBqa;rXjzrP!>HL{{} Z<$o*v?m(%qjOs0)yTGtA*o zDvue?Ud2yO6aot5K?Z>Ly-{UuL9ZmvqGC+pmYt(7yg)H&+ }gJ~koVavkHAfNfo#<`G`NBaL0xDVOZUCCGbrRE;u=7zP3r~ 0Mxxw+k@x+115v&*0!HsId~0wuLRDrj6H5 usSF{K0eO_LQoxiu4tK?y;k5X zii?Y3=e9O_>PEedIm-olp4)9qX}_(p0X9)_8~5M1K@}AiZf+7bHa4&(IemTon)2e} zIjiN4aN(CPm%-j{({8J>tu6bTH*dra`}q-_*zTbDeGUhN&L-QgWMyP-1EUEPBp>i$ zz$ps5qHi
U7xPW4U^{VvOlon&~cns3UC~m|ZNIuZaLI%dawznN?ZzH#m zO90A&0Lqt-W3VDg=SW%pG|RfT*RnlTnYaGasw3>)jlTpqlBXm=#7=-LE%~A%tz5k^ z6D%#D?5lcq*zm5%F Vp4gU@6L~%9Kf&zWpzixuAgn diff --git a/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority-members.html b/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority-members.html index ee940f9c61..7278cefbc0 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority-members.html @@ -81,16 +81,16 @@ $(function() { This is the complete list of members for Tgstation.Server.Host.Authority.LoginAuthority, including all inherited members.
- apiHeadersProvider Tgstation.Server.Host.Authority.LoginAuthority private + AttemptLogin(CancellationToken cancellationToken) Tgstation.Server.Host.Authority.LoginAuthority AttemptLogin(CancellationToken cancellationToken) Tgstation.Server.Host.Authority.LoginAuthority AuthenticationContext Tgstation.Server.Host.Authority.Core.AuthorityBase protected AuthorityBase(IAuthenticationContext authenticationContext, IDatabaseContext databaseContext, ILogger< AuthorityBase > logger) Tgstation.Server.Host.Authority.Core.AuthorityBase protected - BadRequest< TResult >(ErrorCode errorCode) Tgstation.Server.Host.Authority.Core.AuthorityBase protectedstatic + CacheSystemIdentity(ISystemIdentity systemIdentity, User user, LoginPayload loginPayload) Tgstation.Server.Host.Authority.LoginAuthority private CacheSystemIdentity(ISystemIdentity systemIdentity, User user, LoginResult loginPayload) Tgstation.Server.Host.Authority.LoginAuthority private Conflict< TResult >(ErrorCode errorCode) Tgstation.Server.Host.Authority.Core.AuthorityBase protectedstatic cryptographySuite Tgstation.Server.Host.Authority.LoginAuthority private DatabaseContext Tgstation.Server.Host.Authority.Core.AuthorityBase protected - Forbid< TResult >() Tgstation.Server.Host.Authority.Core.AuthorityBase protectedstatic + GenerateHeadersExceptionResponse(HeadersException headersException) Tgstation.Server.Host.Authority.LoginAuthority privatestatic GenerateHeadersExceptionResponse(HeadersException headersException) Tgstation.Server.Host.Authority.LoginAuthority privatestatic Gone< TResult >() Tgstation.Server.Host.Authority.Core.AuthorityBase protectedstatic identityCache Tgstation.Server.Host.Authority.LoginAuthority private diff --git a/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority.html b/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority.html index 6798f2174a..32edd82184 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority.html @@ -136,28 +136,28 @@ Public Member Functions Logger Tgstation.Server.Host.Authority.Core.AuthorityBase protected LoginAuthority (IAuthenticationContext authenticationContext, IDatabaseContext databaseContext, ILogger< LoginAuthority > logger, IApiHeadersProvider apiHeadersProvider, ISystemIdentityFactory systemIdentityFactory, IOAuthProviders oAuthProviders, ITokenFactory tokenFactory, ICryptographySuite cryptographySuite, IIdentityCache identityCache, ISessionInvalidationTracker sessionInvalidationTracker) Initializes a new instance of the LoginAuthority class. - - async ValueTask< AuthorityResponse< LoginPayload > > AttemptLogin (CancellationToken cancellationToken) Attempt to login to the server with the current crentials.
- Parameters
- +
+ async ValueTask< AuthorityResponse< LoginResult > > AttemptLogin (CancellationToken cancellationToken) - Attempt to login to the server with the current crentials. -
- Parameters
cancellationToken The CancellationToken for the operation. +
- Returns
- A ValueTask<TResult> resulting in a LoginPayload and Models.User AuthorityResponse<TResult>.
- Returns
- A ValueTask<TResult> resulting in a LoginResult and Models.User AuthorityResponse<TResult>.
+
- Private Member Functions
- async ValueTask CacheSystemIdentity (ISystemIdentity systemIdentity, User user, LoginPayload loginPayload) - Add a given systemIdentity to the identityCache. + + async ValueTask CacheSystemIdentity (ISystemIdentity systemIdentity, User user, LoginResult loginPayload) + Add a given systemIdentity to the identityCache.
- Static Private Member Functions
- static AuthorityResponse< LoginPayload > GenerateHeadersExceptionResponse (HeadersException headersException) - Generate an AuthorityResponse<TResult> for a given headersException . + + static AuthorityResponse< LoginResult > GenerateHeadersExceptionResponse (HeadersException headersException) + Generate an AuthorityResponse<TResult> for a given headersException . static async ValueTask< User?> SelectUserInfoFromQuery (IQueryable< User > query, CancellationToken cancellationToken) Select the details needed to generate a TokenResponse from a given query . @@ -347,14 +347,14 @@ Additional Inherited Members Member Function Documentation
- -◆ AttemptLogin()
+ +◆ AttemptLogin()
- -- - - - - - + + + + + +-
- async ValueTask< AuthorityResponse< LoginPayload > > Tgstation.Server.Host.Authority.LoginAuthority.AttemptLogin +async ValueTask< AuthorityResponse< LoginResult > > Tgstation.Server.Host.Authority.LoginAuthority.AttemptLogin ( CancellationToken cancellationToken ) @@ -369,19 +369,19 @@ Additional Inherited Members+
- Returns
- A ValueTask<TResult> resulting in a LoginPayload and Models.User AuthorityResponse<TResult>.
-
- Returns
- A ValueTask<TResult> resulting in a LoginResult and Models.User AuthorityResponse<TResult>.
Implements Tgstation.Server.Host.Authority.ILoginAuthority.
+Implements Tgstation.Server.Host.Authority.ILoginAuthority.
Definition at line 134 of file LoginAuthority.cs.
-135 {137 if (headers == null)- +139140 if (headers.IsTokenAuthentication)- +142143 var oAuthLogin = headers.OAuthProvider.HasValue;144@@ -411,7 +411,7 @@ Additional Inherited Members168 .GetValidator(oAuthProvider);169170 if (validator == null)- +172173 externalUserId = await validator174 .ValidateResponseCode(headers.OAuthCode!, cancellationToken);@@ -420,11 +420,11 @@ Additional Inherited Members177 }178 catch (Octokit.RateLimitExceededException ex)179 {-180 return RateLimit<LoginPayload>(ex);+180 return RateLimit<LoginResult>(ex);181 }182183 if (externalUserId == null)-184 return Unauthorized<LoginPayload>();+184 return Unauthorized<LoginResult>();185186 query = query.Where(187 x => x.OAuthConnections!.Any(@@ -435,7 +435,7 @@ Additional Inherited Members192 {-195 return Unauthorized<LoginPayload>();+195 return Unauthorized<LoginResult>();196197 if (systemIdentity == null)198 query = query.Where(x => x.CanonicalName == canonicalUserName);@@ -447,7 +447,7 @@ Additional Inherited Members204205 // No user? You're not allowed206 if (user == null)-207 return Unauthorized<LoginPayload>();+207 return Unauthorized<LoginResult>();208209 // A system user may have had their name AND password changed to one in our DB...210 // Or a DB user was created that had the same user/pass as a system user@@ -462,7 +462,7 @@ Additional Inherited Members219 {220 // DB User password check and update-222 return Unauthorized<LoginPayload>();+222 return Unauthorized<LoginResult>();223 if (user.PasswordHash != originalHash)224 {225 Logger.LogDebug("User ID {userId}'s password hash needs a refresh, updating database.", user.Id);@@ -505,35 +505,35 @@ Additional Inherited Members262 if (!user.Enabled!.Value)263 {-265 return Forbid<LoginPayload>();+265 return Forbid<LoginResult>();266 }267- +270 {271 Bearer = token,273 };274275 if (usingSystemIdentity)-276 await CacheSystemIdentity(systemIdentity!, user, payload);+276 await CacheSystemIdentity(systemIdentity!, user, payload);277279- +281 }282 }ILogger< AuthorityBase > LoggerGets the ILogger for the AuthorityBase.Definition AuthorityBase.cs:33-Represents a response from an authority.Definition AuthorityResponse{TResult}.cs:14-static AuthorityResponse< LoginPayload > GenerateHeadersExceptionResponse(HeadersException headersException)Generate an AuthorityResponse<TResult> for a given headersException .+async ValueTask CacheSystemIdentity(ISystemIdentity systemIdentity, User user, LoginPayload loginPayload)Add a given systemIdentity to the identityCache.Definition LoginAuthority.cs:291+static AuthorityResponse< LoginResult > GenerateHeadersExceptionResponse(HeadersException headersException)Generate an AuthorityResponse<TResult> for a given headersException .async ValueTask CacheSystemIdentity(ISystemIdentity systemIdentity, User user, LoginResult loginPayload)Add a given systemIdentity to the identityCache.Definition LoginAuthority.cs:291static async ValueTask< User?> SelectUserInfoFromQuery(IQueryable< User > query, CancellationToken cancellationToken)Select the details needed to generate a TokenResponse from a given query .Definition LoginAuthority.cs:82Backend abstract implementation of IDatabaseContext.Definition DatabaseContext.cs:25-Task Save(CancellationToken cancellationToken)Saves changes made to the IDatabaseContext.A Task representing the running operation.+Success response for a login attempt.Definition LoginPayload.cs:12Success response for a login attempt.Definition LoginResult.cs:12ITransformer<TInput, TOutput> for GraphQL.Types.Users.Definition UserGraphQLTransformer.cs:7@@ -553,14 +553,14 @@ Additional Inherited MembersDefinition User.cs:17@ IdLookup the Api.Models.EntityId.Id of the Models.PermissionSet.References Tgstation.Server.Host.Utils.IApiHeadersProvider.ApiHeaders, Tgstation.Server.Host.Authority.LoginAuthority.apiHeadersProvider, Tgstation.Server.Host.Authority.LoginAuthority.CacheSystemIdentity(), Tgstation.Server.Host.Models.User.CanonicalizeName(), Tgstation.Server.Host.Security.ICryptographySuite.CheckUserPassword(), Tgstation.Server.Host.Security.ISystemIdentityFactory.CreateSystemIdentity(), Tgstation.Server.Host.Security.ITokenFactory.CreateToken(), Tgstation.Server.Host.Authority.LoginAuthority.cryptographySuite, Tgstation.Server.Host.Authority.LoginAuthority.GenerateHeadersExceptionResponse(), Tgstation.Server.Host.Security.OAuth.IOAuthProviders.GetValidator(), Tgstation.Server.Host.Utils.IApiHeadersProvider.HeadersException, Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Host.Authority.Id, Tgstation.Server.Host.Authority.Core.AuthorityBase.Logger, Tgstation.Server.Host.Authority.LoginAuthority.oAuthProviders, Tgstation.Server.Host.Database.DatabaseContext.Save(), Tgstation.Server.Host.Authority.LoginAuthority.SelectUserInfoFromQuery(), Tgstation.Server.Host.Authority.LoginAuthority.sessionInvalidationTracker, Tgstation.Server.Host.Authority.LoginAuthority.systemIdentityFactory, Tgstation.Server.Host.Models.User.TgsSystemUserName, Tgstation.Server.Host.Models.User.ToApi(), Tgstation.Server.Host.Authority.LoginAuthority.tokenFactory, Tgstation.Server.Host.Security.ISystemIdentity.Uid, Tgstation.Server.Host.Security.ISessionInvalidationTracker.UserModifiedInvalidateSessions(), Tgstation.Server.Host.Security.ISystemIdentity.Username, and Tgstation.Server.Host.Database.DatabaseContext.Users.
+References Tgstation.Server.Host.Utils.IApiHeadersProvider.ApiHeaders, Tgstation.Server.Host.Authority.LoginAuthority.apiHeadersProvider, Tgstation.Server.Host.Authority.LoginAuthority.CacheSystemIdentity(), Tgstation.Server.Host.Models.User.CanonicalizeName(), Tgstation.Server.Host.Security.ICryptographySuite.CheckUserPassword(), Tgstation.Server.Host.Security.ISystemIdentityFactory.CreateSystemIdentity(), Tgstation.Server.Host.Security.ITokenFactory.CreateToken(), Tgstation.Server.Host.Authority.LoginAuthority.cryptographySuite, Tgstation.Server.Host.Authority.LoginAuthority.GenerateHeadersExceptionResponse(), Tgstation.Server.Host.Security.OAuth.IOAuthProviders.GetValidator(), Tgstation.Server.Host.Utils.IApiHeadersProvider.HeadersException, Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Host.Authority.Id, Tgstation.Server.Host.Authority.Core.AuthorityBase.Logger, Tgstation.Server.Host.Authority.LoginAuthority.oAuthProviders, Tgstation.Server.Host.Database.DatabaseContext.Save(), Tgstation.Server.Host.Authority.LoginAuthority.SelectUserInfoFromQuery(), Tgstation.Server.Host.Authority.LoginAuthority.sessionInvalidationTracker, Tgstation.Server.Host.Authority.LoginAuthority.systemIdentityFactory, Tgstation.Server.Host.Models.User.TgsSystemUserName, Tgstation.Server.Host.Models.User.ToApi(), Tgstation.Server.Host.Authority.LoginAuthority.tokenFactory, Tgstation.Server.Host.Security.ISystemIdentity.Uid, Tgstation.Server.Host.Security.ISessionInvalidationTracker.UserModifiedInvalidateSessions(), Tgstation.Server.Host.Security.ISystemIdentity.Username, and Tgstation.Server.Host.Database.DatabaseContext.Users.
Here is the call graph for this function:-- + @@ -582,19 +582,19 @@ Here is the call graph for this function:-◆ CacheSystemIdentity()
+ +◆ CacheSystemIdentity()
@@ -617,7 +617,7 @@ Here is the call graph for this function:- LoginPayload +LoginResult loginPayload @@ -638,7 +638,7 @@ Here is the call graph for this function: @@ -647,48 +647,48 @@ Here is the call graph for this function:
systemIdentity The ISystemIdentity to cache. - user The User the systemIdentity was generated for. + loginPayload The LoginPayload for the successful login. loginPayload The LoginResult for the successful login. Definition at line 291 of file LoginAuthority.cs.
-292 {293 // expire the identity slightly after the auth token in case of lag- +296 identExpiry += TimeSpan.FromSeconds(15);298 }-JsonWebToken ParseJwt()Parses the Bearer as a JsonWebToken.+TokenResponse ToApi()TokenResponse ToApi()ValueTask CacheSystemIdentity(User user, ISystemIdentity systemIdentity, DateTimeOffset expiry)Keep a user 's systemIdentity alive until an expiry time.TokenValidationParameters ValidationParametersThe TokenValidationParameters for the ITokenFactory.Definition ITokenFactory.cs:22References Tgstation.Server.Host.Security.IIdentityCache.CacheSystemIdentity(), Tgstation.Server.Host.Authority.LoginAuthority.identityCache, Tgstation.Server.Api.Models.Response.TokenResponse.ParseJwt(), Tgstation.Server.Host.GraphQL.Mutations.Payloads.LoginPayload.ToApi(), Tgstation.Server.Host.Authority.LoginAuthority.tokenFactory, and Tgstation.Server.Host.Security.ITokenFactory.ValidationParameters.
+References Tgstation.Server.Host.Security.IIdentityCache.CacheSystemIdentity(), Tgstation.Server.Host.Authority.LoginAuthority.identityCache, Tgstation.Server.Api.Models.Response.TokenResponse.ParseJwt(), Tgstation.Server.Host.GraphQL.Mutations.Payloads.LoginResult.ToApi(), Tgstation.Server.Host.Authority.LoginAuthority.tokenFactory, and Tgstation.Server.Host.Security.ITokenFactory.ValidationParameters.
Referenced by Tgstation.Server.Host.Authority.LoginAuthority.AttemptLogin().
Here is the call graph for this function:--+ +- - - - - - + + + + + + Here is the caller graph for this function:-- --+ +- + ◆ GenerateHeadersExceptionResponse()
+ +◆ GenerateHeadersExceptionResponse()
@@ -697,7 +697,7 @@ Here is the caller graph for this function:-
- static AuthorityResponse< LoginPayload > Tgstation.Server.Host.Authority.LoginAuthority.GenerateHeadersExceptionResponse +static AuthorityResponse< LoginResult > Tgstation.Server.Host.Authority.LoginAuthority.GenerateHeadersExceptionResponse ( HeadersException headersException ) @@ -718,7 +718,7 @@ Here is the caller graph for this function:+
- Returns
- A new, errored LoginPayload AuthorityResponse<TResult>.
- Returns
- A new, errored LoginResult AuthorityResponse<TResult>.
References Tgstation.Server.Api.Models.Response.ErrorMessageResponse.Message.
@@ -726,10 +726,10 @@ Here is the caller graph for this function:Here is the caller graph for this function:-@@ -800,7 +800,7 @@ Here is the caller graph for this function:-+ +- + - + diff --git a/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a727073ecd6e9370781422dbc6a77f7a5_icgraph.map b/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a51518b11bebba6f78a360d8b45ce1fab_icgraph.map similarity index 76% rename from class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a727073ecd6e9370781422dbc6a77f7a5_icgraph.map rename to class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a51518b11bebba6f78a360d8b45ce1fab_icgraph.map index 761093882c..f05556da2f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a727073ecd6e9370781422dbc6a77f7a5_icgraph.map +++ b/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a51518b11bebba6f78a360d8b45ce1fab_icgraph.map @@ -1,5 +1,5 @@- + diff --git a/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a51518b11bebba6f78a360d8b45ce1fab_icgraph.md5 b/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a51518b11bebba6f78a360d8b45ce1fab_icgraph.md5 new file mode 100644 index 0000000000..e339c01550 --- /dev/null +++ b/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a51518b11bebba6f78a360d8b45ce1fab_icgraph.md5 @@ -0,0 +1 @@ +7ee8da354faecc2330b6b96431e6c19f \ No newline at end of file diff --git a/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a727073ecd6e9370781422dbc6a77f7a5_icgraph.png b/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a51518b11bebba6f78a360d8b45ce1fab_icgraph.png similarity index 100% rename from class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a727073ecd6e9370781422dbc6a77f7a5_icgraph.png rename to class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a51518b11bebba6f78a360d8b45ce1fab_icgraph.png diff --git a/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a9cd65f59354b327485d6043a1ead45ef_cgraph.map b/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a56db9647140a1a43ebab0642e99a35b6_cgraph.map similarity index 88% rename from class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a9cd65f59354b327485d6043a1ead45ef_cgraph.map rename to class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a56db9647140a1a43ebab0642e99a35b6_cgraph.map index 11c8d837d7..b8805e1347 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a9cd65f59354b327485d6043a1ead45ef_cgraph.map +++ b/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a56db9647140a1a43ebab0642e99a35b6_cgraph.map @@ -1,6 +1,6 @@- - + + @@ -10,7 +10,7 @@ - + @@ -22,10 +22,10 @@ - - - - - - + + + + + + diff --git a/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a56db9647140a1a43ebab0642e99a35b6_cgraph.md5 b/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a56db9647140a1a43ebab0642e99a35b6_cgraph.md5 new file mode 100644 index 0000000000..c6e3b119fb --- /dev/null +++ b/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a56db9647140a1a43ebab0642e99a35b6_cgraph.md5 @@ -0,0 +1 @@ +78dc472bb6332d63167a69a7093c97fc \ No newline at end of file diff --git a/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a56db9647140a1a43ebab0642e99a35b6_cgraph.png b/class_tgstation_1_1_server_1_1_host_1_1_authority_1_1_login_authority_a56db9647140a1a43ebab0642e99a35b6_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..2dfcafa4ade1f32c0bdc812a1895e5bf40c5c97c GIT binary patch literal 118393 zcmb5W1yq;Y);0csh=3p+f^>+W5>nC#(g;e3NTbrFl#-%!r$|eego1QPgNjH?hbSEq z()`zh=e+g*-tmoZ+;Q(YSAX^Fz4lsj%{kW&P`f2ZfJcpoAP9kiyv!X0Iiq<;1~; zKS{j#of!UsZLB0GgB+v(Nv+L}LJ$T-K}Jf$C2?u&skUbSk;K{`@y}^qIoI7jDobIT zKCHO@Qix#^%ikaGb*Evb*1126{EMb~OFD#3y_=lgX|dRs0`CQ|;QsLE&GpZE^*M;; z9B!kL@5b)o$A=S7Chg+HQ%&If*X=(Yct=T0?c+x$5_^`OFtYyTu zp5V!oFD@%Kw{D%o#Ka_`q&(y9?(XwsWo2b&E CM^xKs;X*w@%wwza^bPSK)lZ>67-pwnOEut8XAzXYG+%=@vZ*8 zKEvTs^PzfAiKV5b$;HK>g9A5wT4A#5*RL tp3L)2_*msEgK$ z2AZyBiihpxu1b4^fA@ytG&VNfxwB`}2iCT>GG{-%DqpDGQpmi6De2?mv;553G9x1+ zys+>pIVC0Mg+H5{8D*A(PV&iDVqU*iK;$`M1cV05Ebj_G{rw=J=dNa3ytV}G*u~_s zPp`Pt)zpX_`;J|Y*aFbCTsp6$swyWbiMYADua7xTOoa%JOFnxhj2Ipt9j y5)-E>0=;`U9ZZ0Y+3hV4tJlI<-!fPwH z9`S8xkX+w_R~5VMKK`66Mnmtu8L@Mv^^LS&u}RxG^jnXPj^YHYsS9;0nd(+o#;W7^ z%t?~P-G`SPVlUt8nRYVE6ZeWOlXLASL>@eRIQ2zvq8WbG+I)6OT1}1a<&BFeZcO?Y zqdF#+mV&*#y|K3#Csuy1KYIA^V@u1;srzqJJde%?QF7Vnov!oxC!V+Q^{Sl+y1Kf! z1qCT3qUGe|(o<8B{q5zZD#t}`#|4dwsw(5LDn}ugH3npI LiJJsaZ)Yf*!q%E}N^XqFR)*}MC@S7ezdQ@CmilrukVdvl=6GkUi zY&UfS;-X<}Oz-nWUS1M-n(GjRhK7b-IXUb+hjVjg@+>4&G&F)DNyN;u>~C!a1qFpf zL^uy3Qm}IK!eUG1TnD~xEe`T{9Jp*Q4ieJQ(e3<9uwCmCS@nNdXFuZ`M@h_h=@M>C zObo$-bluqOOj&WU*M|=Rp%<<*WswpSV_ds-Ez`06 Q%|u+uIup%Z1TpVw}Qeuib8V zev0p5CmBzc^Y~Law-gNyR&{mtz1dd=?0kIDmoHz=$;$He_oowkCWEj`NEn#!-nnzf z>~L@E$K0GeNx(}sm3SFJn^6X)w3Z;sUhmUqn=L P+AuJVs>Q?#~2@Z04dBr)u~8?b{9xrH%ArVq)t~BAQ#@BDc-H?&VI%@$&MT zbwskt$dFM}D|&c%Ojj-}Sd@e;4EniM4~7Zy@ fbzO%nS1M%*%Id}X0?|S mO)=%Un+68ik; h7UuYHq~=@3Ko za8@~7f`>yxX2SDWFSvwto_%I{nLt`v+Q;O#V_u%PP7mGkJ&Akw?rE3XB)Pc#Xpb0r zZ>k!#E08U|;Ns$9`2F3(_Ag& )|(sJ?9?6>o4EdL}M`0N`}QqOnd{nd1J z@sZ-<;)cp6zwC~W+*vMOWai@|6SN&~4y6^L&UkP2op-d(od$M^O6(aQY%H9oi3dk) zY;1VDrzDMx7=uGXZo`Mr(k8L>4pljF+Kks+8h?h3#Ky*IS36z#*_CuQ)yb6K*4EYs z7YC`?>{0R$4wiX!Rj=6u8ykCVb5llH8Q;Odq1f;vrv1oDY(_72-a S!PJ5ls02?W5GX9lJpEhA3? zKbaAZ)k{A=X^t37go&BC#Zxs!oc8(i=W`?FT##mYEC(+85D*}#RaMlI%Yv8n_4VNZ zW2sdKNFSC-I}Ua}add1c)T?eLoRT=)B()i<^1&r#%L%T|%fo}vy{V~5uB)d +lt{T)`{!n)Ch~x|7#6?)mATif% z1|A;by1Kfzh0 BMk_%(if~>5p#KgB%R0v)tB=pXGOP~MwC7~1|e4!`v?Dy~AZ?BHmn$NU` zWaQ^7(Yvily|A1e%!-bQiFoyj(s6Y>$@d(sVry$F89Dh)nX*MaSk4yh*}>|*x9c6B zKeI5U!GY>k;;NN_jGTT~|EZ6IqoX;*_4Hn5PtTp-zkic_`VNJ0xXkiZkDI@LUS3{~ z>DOdFw;em5nJWr%;;lbzFbe+-ayT77=I0f}o^7T=dO#m!?pKN@8&jI=pOuK$ug`BS zkGzr%y`T^p8v4N4n5j@9vWRfksfeD7_#32Nh2i1hA1f<`rRVtX$rULWpI|PI(ua}J zNl7Z@wi8-HP7wCbcGegV7Y&ZnCOq~-^78XLy1T<4KYk3kBO~KwPjBy~YuDa?^u=mv zX>nMezR7Xr3M*6E8A7^lfCMeS)(`e4jwyO0>bF0>IO8zeN$yh$NkY!t++5?%9VWU@ zU%rqFvgJfYN6SFQW{FX}bm@|UQP1t$x25hD>1X!!X>f3G+|fDn^yyQF`5smuf^*Tc z(lQQP3;ozz{gDnoObYg$$JoezcO_nzR!tT)e<$uAKY^b9-?K_8D%M2m_wJq7t8xhN z*qx<}RLpcZI(V8_P++A-zco_pam>g>Eo7G}bg96=FFyF9!pY-X^u;Pf@}_v~T?(NU ziG|ho_n%uVs%JZUHpodSrR1lu>-OdI=g;%Uy%Zz-H(OG+-?y#xsi+XzT%DkY5R`$V ze~w Pxft;s~4I~;$@1i^Y2;`M(M&BAaQCkZKOKP~p+52vM}Z$GZOC!Jrl zX*)TgR3?xAsqO<^qN1W}pSbGz_NwZR4=0XW0!S|oUpd~{aRK0vrMdd$^XKN@v!A9` zRze32JZUG~HbNSoJk^=$ej~l}BT98R+Bd89E}%^m+(3ej h04%LvcW>W*zPs@&y|k1}a`}Z~wexD>W+I2g z!P=?TF#52(JPwzqPd_#`Vy@Qyp&NJG_@dQ@jZ{`vR@l$TCiHYS?*L5TwjSnNny9CD za&iK&c+ rK&Z+LB<2kUZ}sScl3e&P`juu4eOYt j^6L$kfSeqx^2A?!FJ=PSwy`HuX=-NX1w1)NVzuKU zMJ$&=C}8NB^e}M}&qa^9ZbmD}JNL_NPQVQ$ 4gZ z0RVh`xS-&24ODh?f5Z ^(eGk*Fk1p_~SSqJZ@-sYXnt*zVl?gbcl9%?cs zS&w{R N#M+fWbanRZX4?!VWm-Z{A<6Cxm=opi_o-Czp(v zn0Re%O%mFl8?=4d0q(a+|D*INDk;5)iXyFYUOjnwh`DB;vy@1m2fO3{gm1Kx%U6v4 z4^YtetHkjIWNr6XO1kIqk;~d728x8~^7ltz86e#VJ^tZOr79zX_4)JX@Yk<#MMOk0 zdA=qH5<*FomzVddua~$$OIrdkQMb mTXS*j`LnC{$r^faDoVr{Ak-Ov(~HWbefeXyp1YK0BZPg_Ul z#@)N+-}c7KZRyctkgJ~E*xygSIPkU!G89eeJ&5^)B}(}J(og}=J*4;8!O+sus_-}z zJ~%kA+g`eNux#t8u45ZNOnDydh2nfIS4WniNXWr&%W_$n@6CQ-Wu*)UCF@^M_hfc< zwhzFxqKZmpcemQR;^Nf!cxoo5XPa}x7^(2F*yTL5LUvwR%CB$85ZKxW1_!g8Idg`I ziR0?kEI^&zAvA*RO-(Pf-s)t&(}j>tgKV?D^(|e_yuk}YM&`%rsw$knWS6VV%rBtP zxFJ(k{vHregfbg5QyRboOvx~M2`zMSE*K~(;=MJfPlk0?V2bF@P>7mq4WW_gb8#=y zF7ejY)y=7?N%Z%J2B`Ty_G0-x^}|N!fkexnZam@z{J-C^y*y%mu(LkBiyo#k63VeB zUE1l#GpzKD-G)(;-MgsvAOM~{yyMsaFs>2fj`Cnu>OITepF7E9zX&GQ9{rt)ZL z+t9vsbW|6Bl}URzWATR%zLk~NS4Jz-H^mIxx5xoLP5u1o3n2I7!~{J63(X;f0e~rN z4yi%dh3h1)+e^1yuHaxI?4mUqny=e}&ok4(DY<;*3L_3C;M>W`NiUTIfhqXKIQaO@ zHBUF}W; }Oh`wK|P~fuZ l> z_h?-X?tgSzfFP!!A;xRN!^1=RR Eq-_1WO6-6R1d^(H;N_vZm@eW*ed8>4^# z#YNTRmnkXqC(soDUGs}GglJc_z6Xi(VD *(lDy$L|l3io}18`9D|&o<4_4hbF@ z>3(}(5MV^WDkm3L8yqZrIK_w=pOfap*zACH>#-_wz@lWfQKt|kC8YwrYKkYnx-{=i zP*6|^Ij>xR9xv?2j|VS(eWxKd73tT8HR{c-s4NG?dky}R{G Cpg-`1_7WZgxWQ=xOf(c6L#c~ z4WlCf6gyh&OendG^`Jjb6G6DRxO8iuk^cvF{PtX#jr0>aF)?FnmHWO^fo|oUgAZ?b z@;Y@jHGN>k((>{YnP&i5-n6p13;>%=-#}M4xV>GzqM{ akGh{mm2A`rLu18$K{R=1J_mVk=e5V5khE`e+vOvQtV6hGUt*j(s83y(!5?7*IN zD=F}+_ W %1==N;Gy+y$wY6fOzkD&WvI>So?zS`K=K^POP2zY%!ew{%6^~grgVlJ= zc}Tn}1AckD(AJp1p>6N#8ff2HT3#lmpzxiXG^9Fz-e|Jn`P}#S7XfvUIpwQsO)L%; z$-!b26clj7ha5~CAJPk04`-Bq(HY^2PwQ}xIN_+wiwCSm?N&ywLpHgcUKHTJGG43H z(a{kd6(tR9NZS6N)u3MhEa#xi;eCzj`0~Yi?Q&{H1`9wTGRiuG8kY#j{PX_+v~}U# zCyv |X)VgU$*HxS846>W>~}RXmrb zeP}(9=&{~L@7WD35!nJWGqbeYVa--ctHWk1!3i!?_8Cx) `+Y7%)M-t-S7fQ0^EDL;?6%O^>m#P&eGskC(R*4;XO&TswCOG)PP z@>g=GOuk~O{_U!wyZdD|35>3V#Q9kvt8ADgdA|B(WY08xy7M`_^;LK_^Ml^p*Tkw_ zFqY3*KV!z*I;?7BWaO9iHHzir30U{^8s3i9r($^-jq$ur4dJCFjW$m}uz8sfZ-(8~ z#`T3jMGdl;8+#SnclIi%zE2#Vo%M;az)9g5z^ Gv@TA0Gy&XnJKSvav89e z?J0SM*?3#E<)%YuPJkt~w2<7(yhr+ar&Dnns()Ux`+-Yh@|CM@EEJ6; ;^1 MlML& zrCQYBdtprqcv&K{{PBnsHm*%L{>O;IMjul$0h59k>+vT~>WD`}svuH?sm0$wg+s;M z&W(+^gfWNNevv`*hCDNFPbr5zqg&P*6%w16aRzfO@`f>H9@dT17&L)_#fQaVYU#dA zJgvewo>3^BTSD0rnUa$tNp-4Gh^Y0KmLZwfRZIpS{JZkrd_;|9UZps9r=FS2<1{=) z-XrpoInR**h9*X9TrD3JQabVXm^`h?=l?#=Qsp06rq}Wuh8G!wU*S?QBcb7MD7`F@ zas~#11|zA4@7bym-y>~3urMyMG+o9Cmuk2oPgF5-Q)tl0$0#_L_HP($>#m1gl%_o| zi;LNc9Pg@Q&>)z&6@>5+6ikVnS7nEd=-(8C+|wt)iY8inUP KN4heRE^<6c4jexPZ@zm3SDl)>9+OK3Vi=OIaE#inmYz3>4-m95 zL{Ug<&V9Mf6czGTVr~jaO5{#>MJW5*Tt^w`fhqn1{5Tz~B&L}K>Y>56%$SpFDSAIF z28sK}1zrur|JRpk`>9uj;*>4=Bcm4?RFE!`sYECKo+eYgObdcIo`KwdI+$g}dEvBU z@vs~l+HaMix^l1?)*t_da+yNV0I`a+0M_$9+G{4kxs8ASnE!tFCEmiqR_-@WynJ*a z1 (b(5AlxvpMQ^JQh1=F3@gKf-@;6-+NP~1 zpSyH=Fw#+`rKQ4QNG?aivH=+WM}Hq!pFt`&gL$8{DS#XOx=5m)2bf(Jcc(;)n2m!= zeE%-ESa!U&+@=O{bpt+=%JTZ(Z~cnPy6CTe+7L${eX!-glV28xJyH?DQW+|Qjp2#W zeHNDJoxdG!1M6%2SBi?^?(p@uZ8Jc2n4VN1F)8>0{H*}yj^{$?ixNt5f`n5XoG;bZ zL|!)Pre^K#a}a&&2DxI9mTLSgCpY(6F$2yxypm_26yUj2(x6$nDg4H+PwnkF&!BA+ z&Eg&~QpUiy+U^H_T?puaHlJPv{0l-vQ5RLUoT-9KWDlU#+yUf0BBpmF*+gYY`Rv&< zerUPityzpmJ2Qlierq?ld3c^DB_*NKM{YN96pKQ2_Fpm-5*g1w3;v(WjmFh~O@{yb z3z93%d$T^awqgqi2yg?1_Ge|RW$-NJRV&9TnU~P7kn_GSXc+`dLa&~E%i3|gv$?rB z6<8;30fE-Zk1xJuDp8^hicDYOZs|Y_=UoOIOhrXS>O{bLG}ALPBhemDMofUD0p1V_ z%iCM7kmc9@{ION4K*;u`l=etXkTC0b-VYs?Uv_%5llntm1NCHWSD2B31q6T;)IlBc z?1TiG?WOPOzvHjm|6q7@u=`dqrR;)4?@ONT&mEpS$)Kb_?-{^VfAH?hJTxSY!^70D z*zgl=zLh~A30(f21e2VoloUb<2?-fl*+!tep{Z%_==j(iK+0n^#C=)6ref@OkH#1C zu+mb#(aI-hfGLu8aNuLRl{jQ$UheBAF_$Ac6cp4Z@P&FrN2D$%?^=M2_tKITik*Nj zpI#@ucuP`Mm9W3Rf0 vJA_Uwe(%q!DlRUr!>=w{v>_9B-%|r>Zyvb& zED`4wBI1a!FhUFlfU%t&9dG;y>3e{}ZXX(o16E&NRW;0MWi)ql_|%zm-O-oSfekAt z2!<9M(20M++qWI?y0rB40Dn{l00O7IvojDtvI<1YW-E;?A3Lxr#Pf@bDCN)2&mZ%E z_udOjAlEK&bB6~92e-Gj`c^qDE5foGiv!aMk0^Hv8$VU*1@^b2!~K>&aGb+{F6O$e zsi_&%6Y&Za)!46I4ULS9Bs-#_qUwewC7}S-OWb*12Sc+xmtRzu=IxEy^X(h)MnTZn z*RQH?>JT*`hF_Edb#C4neTmO$NgMWw8AQhty?6`N-Mxs_Gg})dkfxRJ&<(!G!txSu zcYmsGJQEjJ80 V&hiQfWC2wTl$d3dqn?(QEa*B93=Jg#$MZo$ zM1AcM{_=QjbqDYM-X2NBLP`1iO1E8JV2{nmYm=eCjYnm0)$MqrR43#VARv=OoJkN= z$^jaycXPhC#q#j*@DdY~x4(bJol6+0jg2>$m;(L%832vv<>nF_j0_KR)M_31O=qWg zC;| CaFd1~q&;BhX&Mgmnk4?j^xCOR%o9% LakG37C{yE_U#o~VF!8h?|c}lk;8?x7ZpT5 zh$WPS |iGy?WXPDW ;Nw9h1 zYW*=Cr0W+E5yS`sJ39`DLWmde)zi~0K|4$DzlO)g`qsMsVPasAG#7?OT*!To51Pyu zz;PrBJ1S05gtj)fv`oD%ANLLj!1WqFUG@T-pz-xJQv|tn>lWJ0A%+l1Na|*+|Lt_y zDagg_?CcHD(4b{S`8Drp=+clAQ5as|{`s>EBr_HgT l9&h}5Anm{kT zPtLiR=wjvSWODyW>#Ms4?&MI^v5~mfuZ`w=GKD}RkJ>UbG(@2PM>S^2<+o1b Q!+hkFkTdt*yp@e|sPHc<5n0qx@p9omi#Q-ps|%*3 ^OcuPya1b0;$MvSPL0wn_ zbs_M$uy^RpV%7cxBnl%lGn~73?}EbII6h7X8!Zl+Iz;iQ=-61M%a@hiQeM1xvGXPu zn1$)}D%y8-$49Pn^Ycb?-EXE}rn1hL`kn-NdwyY|ENESjsEUDST6cl=5UPI6_=tg~ zW+v~K*5S V~bgx zy4htWT$bXf^&rdM%F2q&WAfMRETe=3JyPtvsz0~5$b9)SJ}Lpi?v 4}NuVQ1T7y9#o+p=*w52*+G_ddgHW>Qkp^)uO- znXJJ0d4u#VbMxjDWN7cCBwAnm+**;mBfn@M-DiNv^bZUq@$4OrchFJPbT7>i`@zb> zl3Gzg1s%S;vNGARacj)5k%FM=w4S%)#ZdPbf8*3AD zEhg2k4P)KG#a#4hfsoX*g+RZy52n{X@H@LHC@EPMOUXW2Yy_HmetsS`3t$t{6%_Z< zrdAbNTUj;Ru6hj%*E%ihy#Md3gc8^wNi_ELkpX5Js&y5F%7tfbZH?L{aBy*@ nJ|gg#OqJipkPmPdG4O2xUB7!Eao~5rxfSx z*`^QHBM9ON%GK2LG$w?qwzf9#E2nl2|4gi}RIhTVObiZE(g@n1dMhemue&JqM1+-8 zYV^0E#dC}fV3zSXRA9R&Pe^S=@~%0r=+ iLhU};u8}?K2T&322~~vB70}@1!418 z=|c9{@Q!Ag>7gk2E_^{WHg0^0iz=%6uFGZEjutjH<4eyTevQ70L&suxD;FzMX=aYw z>(tE_dEq7IKGA#z$N&Op2B1XPIXJvQPSp22bVMCOZDI6sva;AHAmY<|3hC3%-u@#* zRf)&p9`<@p-XgHu(`AGDXoiIv7y!m1;0?=iKIiS74O3WtQ4jh~ZVaq5Fr(z5A?L4Q zqdp`cxzOW?a#JV;#>4Ybj^6zxP*E~+ax)-MpbV+_@xc?stFBHQsL2w~V-Hcc9U>qt zs06I20RQ0TY6Jr1v$MCy#KxBOu?&)UD}W>ffv!XT)~!~k2k4uE=_TmUq>3fw1+~Uy zRY+|=;WLB`F!7WCUeO&vRSl4l89}@SNP^OrAfN>UM~W7J1MJ3+A2G63Q(A5757A0t z4Cw *)KwrWY21#u@_pNML |3aB~CX5FwxS82SO4Yvi2)dXt<0ewDm=f zwL#@TlS#s})(<~Jxe#uXR{YPPcfhd>SIn%io5Dm-nVRWVoASkr7kO$km0lU|tWCvT zGd+i(sg9IQ+3a26^3qaxbo5K07hn4LeC+8V0qF%I%l7@Jg1q{*xIXb=M@hqA$6F}y zb=_JhyUN0np=V=q9S(6|P*4dN6_5syN-)lzJ&W!jXhhawm#HktVgCU3GO)5{eq82? z{~0E6)BrJn#Y9a_Ol+?=ww}|}L&}Fok|Ah+j~t<8`XTKteS=^dWtF^!$CklwHA8#h z!sylYwV|x*AFRH6gJ27pELVhVKo*J)w6~H_m8!cecbr6kpy0W7t!e4|``ha3FY4U) zr-Qia8o*GpBaNk=4@5Pf8^fic5^4#lJn22Q)LeR-dkeJs87ta--iAHF`3{IAQTLgK zgmA;z9+xVNMsXIarJm%ewV~FbjTdNl9y0Ue2kLi#AHXOkMhjt7Q+7$cIye{~EjWPe z7tZ;JWxH7QUI0TKxDGU&sgz%!Tt-$zVp0;w6a_2XRHXbL=5(WQXMGyh|7fkQjFyk6 zSWmw@9=EwT8P1?yG1f&lH&V#6K9qI-#~?Rv7XDw(XP}ZO55w#%W^yOa1m=!#5BVD1W84LpHTyHiZNF+QiYla|>pU&5M zi+OudBJ9HlkN9*@&!JnAPyaPGI$8|9p;oqm#P+tC^8g=44jTqmDpmsqqMl6gMlK_P z=)yc(qID5&Bm)lc{Ur2}77rd^LB52&NEeG76za`VQD?XOx1ZP89p9!FnboU&oY`9@ zb;x@k1U2YZfl>wMPsH%FPKoj9pI=iZ(*BtBP_?6!sy@{}t@HaLRVAe+$eG+Wqe75l zOs1Oyz?EWdehC_;+uGVVCMGjlvLoSc2XDWaKvjW`3h?gLy{$z*Sc%K`Kj1@GfXXCQ z4(5Z7b1I!*zoN$;R2R_tPC>!>@#BXfd?uQlK)4&ta}dcRNcPz)DVM8$&!%~!!5%|s z=%#N4*O*UW=;zB2BPT! %DxZt(gPB~=1fPfAP6+G< zUc=e%l``+F*C?||J2`#msfmusyej)z*%uUJpPktaz`D?#ziYh4g?IL>Jy;xkL{Y!P zdL=9P%ucOM{K^My;gW7jQc{T0tE*E`+z5=neEll->{-=L!_B98ojcIyV?V6%sCByZ z847CinUCkF`EUR;qj?fKc#YV%Sy|X1CjxZVsK_c2P@|C66O({M0(K4K*PxAn*CYVa zAwRp4J7jo}HnjGZU*(C$Y}Lc+myO+Ir!r~n69d}`2VYJ3@ zaB|xJS b?Vn`)*x7otClNF(l2v72mzK6&uMfcmJj43tygDN3=*SQM z&KRReLpyTbWT_H}k u##4X}*; z`1R{z9q4atNOVeyDwtKVylQG{*e_o6gHroH+HoE(&4;)I1estzg$6wxbsjbwNQA*Z zyVqyhT3i5go56v>+u8 EXIvN|jp#wLAu2e=w |D -W|cE9|WM-sT%%>xhWIMKH_ZApM6ERZ!0XJV$77 zSaV|ww1EZc5<9#9ASrJvpQ@{BB R{?ecHpJf_9E>VPB$*bGpt0d1 VWBpi8HgZAeqBoXvSu)xVMGUGJ{8#$n#JXVniC;5+pMvWo4Pte&;UrB>>8-{WI>$ zu_y-Q2-LyctSnhKYfDQd85y7fGU34j9YOKD(d0{D`7RiKSq5-W0VVK5;~}(Kcp=#S z{|pF~y2-=)wa@rfQpEK{S77l$`&3+%)5M3khdx>kh!Po@(gz(RU@{=_M7Rv<5uR4Gc|42rE(wnT2h`s^GXktoH5lI8`!BnV#iE1t69ATbi5I zplt*ZuN#h?Igku0+nRqP081(r9N$b#onOANg7E_!6;_WE%?r5lI*W3T2RqplSop~k zQc?_F;NDT+&F4@bd->)XTF^ZAm&;2*D<;8`N^HoX{%6;33o0-%>D0LJywxd#)z>Q2 zRRHEM
S(2f}Kg428o>Fn$@1PcXph4|-rWojHzMp9NogRHT!F*Q4T za5@h7`<5#Y<$|d&m~K3MTG{yyK_%!%Uz5ik?12Tq2h5T{wb>u;IsTZPH3FImZ;*Y?bfO?Eg- zs8t6EmuG=RK7-bl&++_c(`7>%A%xZL-0?=o1c1bkgH(95H(1XE==0k IpJ;h`IRa`SP(fhXr=@NA(+?g|KX6~C!r4U-LPEl! z;b8&JudRCqN^}>76P--sFN%ulF6F~?1rVSThSt^ul8*J~!Nu1pe!P%hWc>R_2Vz05 zT @yYxsVXpw*C9{o%4L;sp*3imhBzpA*~(^9o*2 z>Nzhg!s?(_3Q>;(Dj1)bwhxf$nVar{9P58ffhBd|3>ntg*x2yVBi}Cxf X2DW>K_H?Uv W67ZBSRAxs z9MSjd=;Axym+V;t{45pe6-9mV5{MU=vdEwdsc>FR?)2!@NGY12gocE*&_Er^_{lzK z9NQFT8Sf9)ANfE#M**=oRAO=lP84qH@^QVe2~8i@`x-z10>ay;0wscUXnIit8;mKe zo8}yR{Q`z9&UzI__f2!K<0}`J{ijFVwZ=vYxh61=dA) zflpZ(KT7FfZ`ag_LisIcKZFc{Dj|TifKr-HfiPtj7S^dLw7Gprt-8g+_0?&!?|!D> zYyq{30sdzGL#1uaIyU&Y1K{|xU#Ne!#R0x=)H3sbpn;|xA(4T{fZV{K^6_cZ!=|DV z(pdpbI1h{rpnVDl2Oes4f)NPr2kk^Kd1EzPs$is!k3ctmdq?t3ffeLFA85bf?AvYp zQ~}crNrHg2g+0Etk% +gmWOP>9O2jpAcvbg#cI$lp-lMYQlyrQD%AMDEx#5QM>-{qJwn}4BVVqPr%l- zx%8bBL30wY*C(_K?AV*PZwY`rciaAMiYf%y_*C7~ypDV)%$Yz*NeMTYbqt&r2MAzL z05!XV0EPpenW3Q}22s%qurPLyAK!pv)BNN=StE{>#DNR{GA`fq|1XS-=zp+D*> JO>${Zf(qgWQdxbqp%;&+nTJcef|anGC4eB z_u!zPkI(6I7lhEc1X^H@uR`X10b(MF=k6y1)WVN0BMf^;YHL%$%4ezl+4{5%-eO3X zSkTW;mwN)itga)GXKWS(kY?t;6FTd$tph)E^N#t-$G&f5uDmcdGJ4bLk)HSUlq5(= z03FwWZkquvTFB!-2! |w|ArVAuia(eoxwEs-Gfl+!0oR8yAf6+onm+l|W zQ&tkhOZN{==<_^<*$61}FpK6B8%uFjzb1z$1vRL?y?=51Bbsm^F|&{I7FpqIP@+O` zpD{FB1a$4+>peYzLT>2lItQF2O1%Mz!3_gC1^Ttr-VBDH<9LJ|7s$Zl{2aO=V=%*_ zxd)hhXf05B96?#3#=`-4DSTk}w{KF=c6h&dLDLN0cJ!Q00@W1 E8+W5NjGAB3O$^#*dxA)yh(YBe0@qk^ zF}L=;dqz<6P%bFwcR@ba!^3R; ttxQCe9=#eS;sG(Mdu6%sGj)&2(s#|sl%ZArpVRS0Z6Z7lGk>F=VWagYv}MMSFm zkL!Wm9iAUfE#dv7&c97aC#ua@H_(b=X^ roBB62yb^l zWv-GocjkKheK@bov8j3lpr2FuB0E&F>03t1Vig2@q$i&FoG}$M(Drk3bETlUK)2Bl zraZ0;^DI4uW+2$#A19br i(!6jO+UHu(Ys*JF3?HIgk84TkjwJE09bhVtVf@|dkY*-WunM0)-43JGs zH3EhpoL7i$WQSdD2G(~!_m|XLvM@! ~N+A$Pl)1lg@$`DNafa(;+42}!A7o!&m5ii)5h jUf@>cz$OgfN%#jsU4x6)7kQ!~y0Y7?9O z(Lv{R)hip*?)=LqEK>0W*pz>&&W4@%i(nE1CVNS*grtAPxa^InBP=*MEZ)h1 3MeIN0LXeRlXKjk{l66$`#e&8wJKD!DaNU ziwUimbC~)QU^7C$^^(p7)t}z@^>~>0)V2O<%!s;EHLk+ftEh?3!q{E?4U+MDj}6RE zsMkvSl+uj(881O8#a0|lEL?A(R~l2?9|V_}c1R@SJ3gRd#hD(?!d^_kn!HThWqy}A zX;2UtIkJ<-L$`m$pqQdzLMjI{^$dp2<5zviP+gm*%Uv;I-qyYl^tHmL(CtT%AXPQ4 z0IV|@LQ)O;GVNqu>eHt&^Ze~T)YIt-2%qg=2!h}>cX1~*S-RPTy0T&qWSqS5<&eH` zEb)k|H#m^XA?eaYlh21srfov#mbR~-^|2s`<;hw ;d(JCctMi_vj`sH%GzR6lAEgA@-A^jvZA~_)sSDuQ7M+3voYdDE!czH%Lx9wX z0L$v?vp~Xg`#AhtMfaaYjx$a^%g7H;4HY_X!c~~6{y ~;+SSujq@p)r}%9Y~sSm&1@A%LM~xXokb>?MfV#3BFooodRAXIl4uz6cB1K)$ EzzGl1XY{x< @?^Sin#cxw(7gVJ{3ga_-8A~2w`Ff zI(mIK>V4^V@?FD9hg&L`lQ^lA!$$7vlA>>!&kG#>QtvGaXRr$kvMXfn{7BV{kG`K& zn?%kQ2h)jo%Eg{X-*(Yf6UeWp-Dz7Yg^gRSJ-GhaCM-?LIN@Gur!YvKuZ4WT%HN^9 z6 V6>s8A*3B@_!cC z_T)ADti5hDLA0Mm(xq+R&pjqlV eBXTn7R5w-1&r^rhCoq35BL!7AC z>MI}PoiQFTn`J%y?~YPrjTgbRqiNtro=~fJF_5xUT#aHB>QSj!Q}%uo>?nkO6y`JL zh)q^ |=hU(mUD8B45jQgrVuRnyUxLNzS 6@qIS zVq1EZG+(+PS&`JrA#qnn?>H-8A*Z5p(H`UB&bq`x(%}P&jC jrsqH4{ht5U zwVWaRSLk<^Zv!@Vfrz9mmLw6&@u8@u-tB FOE0yaCR#HZt=1X;?DqJ9uS=VQxk5=6h$9qx?h8zLK=7^BB_ALOF3P!7d zswNl4_6P6os;H>c8a$nip{Os{ZNnO538ar<(IBX`xU`vv_vWr9%UnO1bbS?7mFCUv z{Hwk%^BixxS|;OSA=232KPX9oOR})In5h0R>wuXQ(w=MA>E>Qe{xZ@G#YjW9A7oR6 zj%|Gu(AfF@^&cv~1t8H9mEpA6$yvl8BvjF|T74HE-vfV>4|#UJ?`TZ(E{#`*=Mi^n zvMCUc5Xwt8$?O8H7@962yE>Y7Z(Xy_fc^KwwMDIcKc0czHE@cHWy2Z5@1Ml?^1OXI z@u@dz5at;W-$`I;O_s*6=S##{$I74(^Z5lPTxB%isP>PS#+MhuM+e+8=0yCe{G10R+WEFd|m1K-N^JOZ|edcG({zX!K;k#m@sZ5cLK5SXV3k; zy vM6j*A1Rh2(9foXigJ zn``jj8**}IfXM=VnlwCSYp !73MtS#DH9=XfPV?A7o3z)s2pAWh{_}Fvs4-^@` zAQW!^)z5-Ij1tu-aJ;=tzjhMFLE9t;or+S}6ln8vz$D}2<9Aosn+$#bJ_WKwS+c5~ z9XB}V^cLseQ8p#Pk$rOX?E!~olaZ99&22G!9A~1PsY?htPx$$>GWeJR>r2tGU>ny6 z!fRmeVTJLU 8 -i$0P_8R9&h=CTDl2N1|Dby1w zwH#dWF=2Ovc{ov*wG+lLUZ-Q?Q(Fj)AKD>}RZ~I_Q5HM6sCe5IeMJ Iq z0XD6m3GSP+vT2}Yp}itdjP@YIAPvqF?tU;mVhp0!^qL=#np2?d_`&aoE{6wh!H{Q( z#0x6}D#&kS3`{2IeHpyG-q5nckHUuQ22vkXv_r3JWMgv *zaP4yoI)V z(6|$o!}u3iA61ta#NdHovI(rgvcSin7L>sHovp1c`=ucshq-PHS`nw0At52Ud%)PW z!Z9h-5C#W?ddRT!ZFlxwx`$gp1$<2wYXbj3vo*@`ym)a62L1D5j$zUd#?}ysLU3Kt zqB7*uz=fMy4<8yjeg%CV+Uv7?<~>+oSMUNC3ebsQVmd=lPY;)7G=X1$SvI%<47C`N zOFv+T&cPbXK`RAbCv31B&CSg 8Jd~-L-2tU;Iw2% z@mru4o4^MIXB>2;^DrOtsbvE8oQ#6PczL+&v8R_du=`p?`d8}4-#t7l?6iafzZbaL z&e?13dk!EXl7cp5)|W$kj#ii@`Biv0LQ6|4>b_SxJP(ufb*;;{@1e`^4!yVl_0&A3 z&A5XeR)|ndql3U kke6HJ8@#5}Paaz#%&%>oD+2ALBbt^?&MOIeU z0UT}+OJEuX`6pb4=?xT8b@=A7$|rtc1IvMoTMEQJ6BCTbr$b`s0lN2+m{<}#h#W{g zH!I&ky$=D#8}1uHZx#5Gcs(kVPK?7@8IEm7Tbmy`!3EajK3H=YYbM{A@6V@P9<7Xm z#vk~^5a1sbWMqKcW`U9o?5;XT5)65LnqB?*Qx@Sk*o9>4?@u=1_ip*Nz$&X!Eb34; z1JZPQ8>sf4qWU96pqN4a%-}u-9eQD?ggJzoKhS2hLJE5IRG 81=mFt`{6 Bk&w`{>;bAR)m6$iPhi=@1WUpnJWA=~X^HK6WmyBHiz( z(glB>0cQ4a;IN>A#RCn`vI3$tH@{i87u=(Qjwqx9Jr@a1St+=Y1pPR;x`Ph_7(6rS zptXX`NB%YG`V+RNuCAO(p#|VCP+a9i*m-&1b?&KUi9LWT0<;Q6Wmx}w0=94+T m|Bk*h^Ufvo-h&gVkR6S@Qgdmja+jSifAdVrfV%^D!D#+TLR2&n z%FZnrR{FwY7!a|a07eWoWyi$wz?(pbhGD^wzW#pHm<;UYHN{)E*r51SzO()Q&IcU% z%s=0|{;{#20Mn2RAXgCeJPx1jfrl! ? zGU2^I?S+^@=9ba;Jsy9}G<0+w=xZ`sS``pIz{7FT-W5&(ztvDUDw}h}M8YK;P?BZl z9UjCuMZ(24IxFMA^)Wj|lJ)!XE;D|Dp>FgZf$}d HI>0)qOMjq zUOh|s4Y2Na;Jzh@b)`{#H8r&rXKL5$WR8(86|^Qrq)Z B#@bvs z$QWRf>?<-b7}csu^#(!?OfvRx?MkWHH_Rkq#~a{<^qB_;1~W2mz&7e~eE0{QxwrR^ zWrE8sW`CE12n6> 6Xo zya5Gnq4W~x2nYz=HowU!W~)cM`$G<}%$`nD6Akrt*hVoFkd`ll dqIZUNAY|v}6ep6d;3fAm-A<=}y`}@Ei&0Y%ScvTJ z&(|aajFbY9T7P^b0!h>x@T?mUo}gu1eboi7c=VycOg9NuyCJB~klt=TJc0_;wmeck z`x}+4z-HY%_^y7AGc7ka05sfbc Hz(OOqZ^iChJ z%%8Z5T)q=3f)5L<$1*@GLqUQ|888sV?DWfjkG3pan;`9r{}D=J36$N(PjJa*Z9(w_ zHvxJf-l#KN0)s#~ldQB1to;s8W)Gvm>sx?XT6SN;y)bb?_Dleo*J0jW5^ic}oL$F2 z&HdfIz0x3v0^VuvQqYVSw7vRDf_MtNVbisldHZ+>s`kP@#*AbY7M=rLYMl^)hxiC1 z&n=5bpw6E7nF*+|B#%5&!OR3xJxjx7N(bl^1Z)~<;DYq)?eJMp6JWe(60+dz_VQTu zT^qVrRtK78=JW2E8ag`hca~fAuh XRPbCc`ll#|jQBraY(l6jMD19uMS)Hkcj> zgj#^k&qKO>$$$f{xRYxJ0AI`ib_ER`#&mpTn25h}CD|Q7N?m^im$Ohns y)NSz z?%F|TDd6&jkMI#t(;Gpc2#<;J0edBSHx1mEkjuRc0ICtR8aVr)@m~aV-{KOZkj>Y+ za7P1 0T a)24E%#uAl($*s0g%bx?Z~Vi#y`uzokad-w_U z;Fq(@-~1B`4sj!RixAA*(22YG12j&{$-zO*;8cG=JVo91sIm@D3kbeuXviX9Wzet! z6&1a(=iu ;2vK zFV*npapLa6Xx2g1WVjeg(!zoRG$^!jsQmx Xy|22AaD-|iBL{x?-Q>KIv$q*V1 z+mta>WS*x&kufqwMM)@|h!QepEQ%5#WGIv((xk*)?>gtc?!CYBy62B`zNfFY&;GoJ z=Xut%)_PnLY^hy2aL8-Ic7iF+=}YX}Q^$MFLtt-#1#Hq{8Ze~-@MAJn>1IALs% zD?2X0%4%NapG-axp_UhB9+08!TD@5*H9}`B@V@iFm5J`c!-yRuV$M{82PM68XEs(2 z+@WmrxCssG^5x4f(9jc>mrq6YL*)DJ&1`? WL7o#SH6uj @Hp?SMWWgH<>%R3+XHD zq_*Q5>Vl9Y1X71{aW&%N22Re4_~zvgAL?mpp7*_m+zq5Ta7@@5o168~a)UEr96nMF z9cJVXg5tis0r{WOV5^0WX(HkhG* &_zOi}7ulap zzI^#|?YMw2ZH?XQn~r~2lAkX72+#uA3M<7Qt`F})A?<|QoZF!UM^eXt{RKyr$KBm2 zTrwy30Dxfs%!*9mSVijt?sjeexpmL9X+PWPVv3BKwnaI1GDxZSunh|ZW={AT5Gf#R zK*4eOQ)iD<(F(7bQ_eX}evKV+VBcR~g^}dW)_vIVT^j7e5iDQ@SORaZ-CABF08)h_ zEH$QPo@^`e2-t2uQiCg;qO tkr2i;Okvn(dh&+<(hidnBo{oenp#bwCFmgh@HQnB zf2G}XJGR;6j}f~abo$7xgygOcD#zz|D^t8(ZW0};$6RuvR#2szEEEP+ayMi}Ea%&< zxT2n8*UCof^~NNURuFy>T6`x59_}>EH|8rS1CY0KcyjUrh)Iu7n6gFELucGmp14m_ zx>3Pvg7B58;g6DP0T3C~daST#V*3;xJkByy?2&rW=$pv_6I2mRFsY<&T5gli%t}uO zX>tSBin?iKz&T(|xeD|-0{Esqd71+6xp_A(c};O;^kLbYtMJd8;XBV1kmjg4jbSFb zX%>3l^NI{cH05(uj%RrvZ~tJfbMz=Tz&459i{L(zgafY?E^{PHY8)@9bU>9;2Yky? z=mO*wup`Md>`)9^P@-3@l^YDyceX^!l9h|g^zHo(`tQK8BA$52J)T$kdBFT~i@5lq zeoKERL(k7bd0&l SR``HB{s7u1P55kWwdGp?Y{Z8)q z6wvQW;*4@8lXVAVX}8b7#|a?H7ICpJ(gvjq2>7jyM!#Od>dj%i8%$1yvqz>LRY!G> zd9@Lwjc-ux9kbO9UaQy31BN4LZ>?#iU@?f9-e(}bogfHAAgdsh18_;s8Hk)7ogoYd z `IFm=S^^zNPvNm >O&_CEp~ z>W;TriC_9`8oqFRuu5*8L6jvWf51v&{`Q1#>I8`H%iu}74>u6mXT%Q@l1X~_kDW#B zKLoW%V73&Vh8eg>z?}{}=4SjhDb&Rqm3;4B; K;PCN zJHY?)h=RG7mltuSS;4%q7O89FBz~X?jr14 v3-xIhe>>&i5Jgy3Kw(u0zguzCPS i=%DL=U-@%iB4i M)6-$J^2(0ot`@&jB{M2@1mKnaf_l#0ZZj z;Byral4A$1%C1JO4g4+yq%16kV9st}q-7NqYL=Ef(8DHjOBVw{0lneT^XDwc0WL=8 z7SDnJ!Y^mQ$Irh6scbk5AOWGc!GMi&gfm5~_bWlUkciKKX0;mG(#ns82#$HKU*2hd zf_S*@doJx7QAfS03Qz<7jW<9tO3e#g%Ru 6qZe!E(q)A3<2$dj6eZO`ZdUKW;j0MckWT|xo@9nb_FqURN+uIQgvqB z&W>=aLi+jWhFbW=Yu94eDF58!ETjq)9P+0aKx-V3N)yXrcs0iX9J8JoY5WQLKhl=v z+}zwfeSOjOk|K(SUqNCTi|uEF>jVYQd6c$@k(7* )-Lg#n zwjyah`6~+lCOD6_tTv(@QUcD@jDSS4X3%g+rcCM;cuqXeImiu}NxrGmlZk3nSKN4z zJDx#U(Bvyy_*!w~pmo-SBqcb(S{sr%-yZ`$d0uBw82ogBI%l2554*Tz>dW8fGJjiX zAakDvhq=EdhzD+%4FKLGt!gQh SxH1Q8ra;%19r?l`6%-T%)VHpo zfu1nfk h?z=ME#7;T;-53l+Em|6`ADdF#783Bzwf;}d2>_Wyp{NiSU z#@0M;ro4)X+buursJ}&Dq61aAxbT}u6X}vxmB171wwwRX(>$-fE@Zq{HjW1p^r)wY zuzWdD{4~XGibmmWxS;}c_#SP5P0S>~;Jq7FtcvOo-|YhYjC5g0wggm!?nvNuqw|?P zNV13?kQiCx>u7*+1^`p!z%ANuPy0W(wCh2SCz}URYW1F(s{98nCi+zKAZ*}$a8@8~ zGJuw~jg8s;m04I>(oG?FJ+=bgtI^xJv&qAxk)&Q7ev+BOLn*Lk-urCf>tl<^s3vNw z^KVG+DHKveqBxbp<|I;b;Pz$SlU&DaY-XT(dYm4Fa))x;Gw?ogYbdfs`{hs(-FNC+ zk5Gbbr`q^A^S@jGWpT5zza6QQ&-YA~;SEJDru@;k8Xr#wd%BqtUIyH4cjV0qif3&H z%G{P>r?6XIMMDKd(LGPX88zIfIjHv_O9;DnZwHDwx;@r^p2RvC>FcXu-ND?IgfgVu zCNHWPfZlvfPR{Z2?rfUFe#0Lmx)7pN_HQH(aT|6V@09=3!RLcL(Twt#h k8T9@9grB*oe@n$Cixo8SYe z$K3mPlzfBHHz76x|1ShZ5=_=|o32ig>I;a;8$pd`w_M9wU|A#X%`Bo==*U$p+JY^y zh7{ETY}(0g)Z-ml+GvHUqf#onL;IE3MSK;YJHH zV{j?6$1c1dwuUABM=EG78A48I49p{k7&(Q61YUUE4s+`okK_I={frQhto-GM!jBJn z1m*$Vkq{Yi_X}61P^oPb7C}3+Z=V74G9JMO7(qxx!*ysKo~$mfaMxI16amoW9yCu| z-49lQ;Pm3TrxACTg{BXGuM?p**RPxX`jwbAq9qdr_;Cn`!St6eKm(SVK5%5rupJI2 zE)%F6g+xU5f` {zw zAcmsoCtZMrLf2EqB@cVSI@%3E9Wz7z(a@~bDA3=mu*-$m`BuB#g_ z&y%5`^Ad@~DkO9lOzs`$6BlQmn3&iZbqY{%1k^d`^sGd3=~f|)FetX-%;z_|%Ny4_ zm>#wh#%&ky`hin4`r<_KPt=bf#S)M=D<_A@D1biY^jj|2jfat62{$1+-bIU)t}N}f zmCy?TrOWI;yE>a|r$Z=^cfi0yAkU{N`Z$-{=!Bb5#~&7+^qaZzhG*Tt3Q S zfM~Mr+&PHjpACY C<&Ka4O } z`4fT)Q>tRs_U>f}_H{xR?L0Jy5fNz5#euA$1E3|Vpx_XyTz=w(ae8uU>Ja`ciCmx$ zB?26Ke|R69S`#&O&aRay*xkcJ^v)pdSbKZ>HZ*AA yC!yk +E43!V3oz zoJ5K4Z6m|pF 9mxkUN|50JROo-qEAH|_!|H7H zLhJQs1l@568E5V=OgXk9*kF_JafD0ibTq#le`Vg*S}l>V8yV-9^Kvdd$xzD>Oh^Ad zB!iB^2KtQjMef>~vy^}tb`Zu&4ULUcX==XqKwnVWkiHi+{7VyrwE=>2uG=DuOsz8F zc IJR7Fc&1zk-FqiB3##?~RP*H}3BcxE08wwPXmR5tJ=dj+9Y V$LF5G3W%}sL@GxSm_Tt+vzbXwncm8uA(uZz3>L{-U=0yU^Z4R1By z+|guF1!hj?E4CrLg{Andd3*=!d?*JxyR1t+Qh9Z~lxVUFQJ#EZo9Nf61uNX1_vq20 zgxuZQPxq3SVf45V>x*flwcBk9Rlo~aMQuI;(s}NkB%SQaKsbjA6C+lK+8-?COiRAA zNGjE-_S^u9Y45r2g9F<<-P2`Olp%RaKvGQ&3w $>jE>lyBAidy=El(lq$TPX_aKW|t_oqe(HaP}Ivs|;HggKitJ@P@6kk(FO5 zvEb`SUVl+a3|>f1s7AEbcD1EfDN3(8>cq&~UkE?Rz-UZYyQ nwYY_8FIEs<;QGDhVU(@DW0D!UjW3zbd(KEst^94KmH&^oVeb;5M1HIGyo$f6_! z$z0Zxs$Mp X%qwFeb2Pac%fuMu%N|)w8+j>79Ni<}b#cj6y8Fu{ z2j^G4s@^{MckWe8G9fhT@43l&ik_~KOC$B>gt3JP|D(mj^jeI06tkq;H-2j>@|ky8 z|K0kzOM(&`j0NYnJV_3&60kb*Z|hfzE!Mc3W3NyiO*H*HhAo^mQTA`slLD2>J5AZJ zUk1LLA+9U<_Mks1Mi>6rLd0rEa5JSc&-B$*^4Xu9YU?LC^MVa-+NPQp9Us_uy!0e% z?!ZJO{6-fUL!Fj6{Cvj|0IKDGzUU@$@}(DoQq#9F9O8Bg+eVAM^ TVJhQ5+(R;CYNTD>x4T(^GLHcLz!Ubxt%`X5MzNvn()BCgYd6b(XZJ% zz;#@1O2|H!!)hlbh(9nf{X)AB^I8E~Z1mr6=hcWGUOL2~y_!*rHTaL0eX6;Yz|QT< zzcU3V@0so$68fa;b>Q!+7b+6=Dcj)6;QQjM@6D>Hrwi87(FqxFSlxT0szv?JPq{3) zme}yd|BUWeJ_?U&ZPG*Or)_dk8?|fQC~{rV&poPk|K}-b(cyhXrB`qX%Si5#4(1+a zKAT8;o4fi v^SZs~cyHt<%Bw 6IL$ zA a#vzMy*Z?QR)9@q ?XmRs9A!c~hhmAN@hb`{H1m*zt-^ueZMFZr){2(;KK2uMbdm4OG4vleZA6;$ z@Os)(Pdd=oxl;yRT-n-gD_pzsW$xTB##$*#uAg4dE5jB4Mh!VNrwe?4_2S}?BBgO+ z!e#2B^rDtK)u@?IwU$-;w7ioWo9`5b> E3I0) Ps4r#TMtG0Tr(0u27zr<4&+3atmG1;H=Bvk7VsvJ z2i6c#B?@19506>X*0&mFux)~5lT2?T1@?FNh7#P6uvsik7Yfz>RK|EiboJePB#hfQ zeSEF g1g=pA|A0HAv;4?gp`m4p zRM&GJL;*O1)((e`rEWl___r;6Q!QpHe^00j2md39s6)RuWv=CAGuU*9JlH`nz$Q7g z%NKMz7pY^LI62GSqY!St#f3sN6O~r?yH0m}IwJ+cP_hi;?nDA!>*(yv0vW0tsq~Z# zdf+Juw~CSJGg45>T lzb`OQr3D=={l zZ_Q~Q6Jz+C7>ul1&r7Lmxcr>V>Q&RC6vYrp-*Z*2>RnP*w~ jhnJ{|oF>`4+ z@vw3T6zM?x&O*UVsRfgWxN-499t#=*=Pq{vpfN_`XVA6+mtX`vsQA8WylHxR`iR1p z9UYQrx{y(K*a9P^faN~bV)h@*k2c3_-pvJhsC>{urSBWGtX`lE^pA`R=Q5E2W@^`p z46}ev!#|W-qFe=0l#q!Uqu3v}w{x^sI`#(Lv<0CKh0YAP+V0=@`lgC!EC7ST=FEN2 z0VWh6W86B<4kP9Kwzr4a^6mxxNUY|y+CU$wDbFyTr>yoZXI}N&>aRsi!FPBYYgfna z&8OM;>%t(Av`)Z*X $Z{U0l{sVBcE{z8!H811O3Cd-4hj zdqt94l5Zf_CvHjp-zJuUGeh*c ynoMrS^w?n|%MC;pow$ 4qzngZ zF#|{i5uc;9Bxp#{Q(_`yp-!y3u&kHz*7SO(T 6(j02&S=a`?OnC5}1E$bf_%~O%%}N9RkV*h#d%-2l)}*ZkVAEh8}Qk zKFphGX_t5c_Zp9{xVP8p&JF8 I!H zP-Ibu!N>-7Ntcb=U|^CAUgnm~ePrI(L$AD!506DQIhSGwyskc7(SI1FWaF^+UyjP{ zXTO94E`XjN5B?l0EBTDl($ccRvNB`Go5f^D+P%FH5s`tyjD=Mf#vTA6B8rL@r(H47 zPxKLjl7g^g)SGyg92QBhs(Tl+CwyrmIMrQDccX)+930;B9N#98r;zj79b>kLrhnuk zXuug5VnPWfjtjuI2&0d{=y-)V_eQCQh;JgEm7Ffp+5^*_mK+40FUq&ZZg|(c?=Qdi zbCTFAX5<)t$@aI4-VGmPn4V$#E`>WtEp`fl=YoSN#BCIpYcn`M7q4Dr!p@mN?X4t5 zFuNO|Ay6pToh+!Ec{ovi zt`isDj^Jv_@>ki+Y!sqk!3{ogihnO&E~OUR6Kur>ROf{8Prqy#-_D)vK&XUM+HggX zZ-tHG3HJjW8*~UgljpcMY DqAtPaqBv;n(Pb0Ug0HVCmuZ zgcEDwcUfOwuU4>h2?c#p2)lxTH b8sPsu3`Gzug^YI5s!w(H1c{7b!i?Em5y zBZTW{5S49*V<`v;AQI3YaetO1QlVq%_3 CO`2qUipCC}g=O<+7{=O+^%Ve2!p zxB`CRSV9@6*XzIthgnGc(dQHjDAaUGf%Vd`wSeUVMaZP##;5)p9X58m 4+G+=fd-zuyu20Qv!2q=HRC_W-o4{RyB8NNg#x2S;s{1&wLtj* zV09HbgGvG4^XtCC3nv7z>=*zT_h?C>#8}6euI$^&N%nEC^Lfyjgll4?-8>8+$T(D@ z5yy)pj_G}--cpeh7pt}cyJy|JITjPZ>HxVm{TmSa{Wu@nJo5{a8m(VyT{jGJZT-G@ zoryOX;?{@-9%A6su8rRKO++|-+zz>DTo4Cs%t*QgknkmFmAIcZ35DO`WzOpV@Z(uo zwFTJ7k6>f#0@HWuFN=rn1Dy9Okg3?Cfs>V+tNm9aU}HC)180sG7+8243)fj>vyYIq z0PwNuJ_+PNwjpKMJ13s)5r`lk8F3PP3F7Jn%|<6?%^?{Oz?pGd=m4|Q9=2P@c76N$ z6>jAB3B?QKWa4D5;4>vwYJS<%)+T?7ZRo!j4cdKMe0+QyAm1ple|a7duR6Apy1FN( zbQ1gw>5d+HqEFya4q95nF75x^KZ5*ZR3NgrI5-B0 A0P-h@_hzPGjN~B9{Uwt- z5tz1)J{y5C_wL<`NT7seWep2n>K-|=hYW)RGT74AR&bY@xSJs?xHD}uNLs`C0@qSY zSBf;D4E|c|&=9hPSyCFVS_8Y&EYunj+iY7QaycTNgG&qCv0F6@zoPN!AHWDV0N1)e zx#dAX@5k_n+h_$GyLH!blQif=IC)-eWjC`%Ike^G`9G9g4}Zs@(TaMf=QE36uEM2a zi>yS0c$jV+L9_4n?c2Bo2m=@4=k}d<8}c3y?MX<8YWX3~-)m6W+vL+r^w& xUfWEqu$VnUQZ@3K#fWCU)1o%H_}9(1zI&4 z&|m7JEpaX8{YDZ$5n8*{R*diIT82SKS2pK7g=;N8HR2^0_S4fP%JwkTpt> k=_fSSl^7jt z&56jA!HZpqU;|QiN*`=~;^2v5dLdgzrI&~F(O@fOIIEis<;6&xipAnG6$q!j>QDwX zVIMCG79IOmq}x?wVB3G)R=bvNN$i#GW_pyY(tn+&HY>4Mq5;POC|?zq8yPhV=@#j1 zuie^dF~hWSCGkE%8>8}7M rQNpR9}L74mLoHu*gBOzZY)#&{su(SY+r| z{jc<(3^h*Nq cf4!@vf&CfMGeRgD{`@%(6qiR( zE)w={SET{06PZZckcJT;MRF_KwU4>TEULU;x}=}JE<@wN-nng&wA9bnI}cnOkqrJA zwxrUcne$X1Qd8nEMNC>@Pdnm`07Y7kxOCKz{aMOi2djq+Ndy!hFnr%&6bTj~_+k-m zpjk>G=_n9ZkldnNs^>I^=iuYQr#wHcM%h^yH*vqa4;nKP$tizZYoL^oK_*fN9_;&Y zOg>THx+L^)9~7|?X4obtzp`+^I6*h)VhC^JXUa7?*I$hmzBv=A7GXGDm_)gEYN;HB zSgPT{U;? f?U7ZMe}efbkJ(3^Evu&@136zZbn2(ApR%oZxQ# zbV1{m!i$W9bU8ulDzbgTh6_2;9uc_?^VtyXh*SY*h6o zedwU;E*y#m~n_2jX+`CHSB+;U9>8_FacDq;x328kFq9voSv%VEza)jfmLT z_2GR~10F(&SMrl4zu$LeWMz#V?N9*K@PS^`mvYY!Y+DbcQqX`v=RUKJ&lBSv35^B@ z@>FL_Dy+uo!C5LRFXuzRb+)u~qjrw5`=Lt$N;tJ(-mWm3Hgfx z|8fCnHo~V`cnmC$ZmMBi!j+d-FV(N=n}sz>#_5F{l~I`swh^Qln4+>AlYQ^HkLnP@ z#ozV%{AT-R(4@$`M$9a+LO+W100~hGayQc7BW_=)LFmX#YIX332}K^95Mn_N`o208 zIIuONqx?VXtIPkXuSSodKw*LehYZ?7W@6QOTNfs)`9FvCb(JW@-+lyjK{Hyux;1A` zlP%80#g%-i@c*w;Y9vd?%8IB07uyI_V#C !G1e!bLokX2rQ zbt!Y|)hf(&=t0yjcgcaDS72bED@N&p1e;eUFLLjHSA@ZJWi1c DD>E$LxMBtWTq+l*G)wEg<$+t| &?5 z7}ScNJAS+a0fG$CJmzQj5hLuw!4MR_mI6yw6w#QE!P~vQ%c-!XB}eFb@waQ3Qw-zK zV^^TE&5*KbIug#j>D}h(E11wh5t5TDH4}s76Dc*-)&Em$7VQRRu@C$ @Yssd6X)>(2yjU2fTU7a1MDVpl);MWi*RPyZnnJC+@V7v~i zaP@=MOLjOpM9n(W1LAc8iV2vN-w3QX4CdL|%4s7A0Oz~rm)+{(6lKcv>pSbldBT=a zG--^S?9LKqKywPOfFujDhsAI;Ae0RNZ&px9rGhCyD~=Q^SbzzG{}9p)5i(=cDsyl` zxm0#D-5zY0X&jD}{fdwYW99^#<;RJMOq>jau17#l2*umY66X;^Mc2-hI6_wL`3P-g zNgOpY77=`*YBS}i5zJ5#rB|g;%2!-6G_1xD6C`sPNFc~)cfz2+7KK>by?!vs3#5)T zMV~`vcb>sv3!2Z-_4{u-lk=l7M|fzMza8T1h-4JWyLdH-opKmAdlt9C(08X%9v4|; z`*@o~j|O+9Cg5f-K%;O-wtVnxKN%CLf+5CdFhIDWxp@l)PgfpVXZ~*$a4Nu`&_H|m zP?~%Q8NrJ%fW0gaJ4`fs>G#Z#BZOW3zPs?cZ$6l)05G#W2c(;N`eHeptz6Rn_MvKz zQ3B8)@TE3yX+=)QcGsAa6WYtPg1RYA1jKG4v4#ls9NaC+kl-=kO|p-tKR)x^`FRE% zIF)fY*!=Jj14=qlT`YPT6j@FvK1RRnl$I9p`Gn*RvTX)5#LG{sho+@18b+sFumjVF zusxv{BvS|g3!*-MXgYK9 4 hQ`?(6e%pLDKc731E&uKCOrvwSlypGLu*FU_{{r93|(Y4Z8> z;)0}0W`r1r_~YMmzSF5wyT>aBKhN&k7hXD^)?WU{8;-}dkY1)eJET310@OSH^vt(! zRi8GxeRB-f5vFp#PZprQ&GH$R8uAW5S5sDTDOw}{VjJh!68*PlpLzOpzZJ(B$pmx_ zf3+SzuZ)b0U=)Q*%-nK7BA3LSNjN<~B5u!;30(K^HYi{m>6n?N&HAm9SIOhXkY-8z zvHOBv^|8j4-#-r?22+iJkr8ucFM%qw1m>Zi=Rfa14UbNxFORnn6L|T>yVdo>LSDO# z^!gV--krU^I3ErLxO{hOTiaGJQgB9=j$ge9Oi}(+nWtXxesj(^KouY+9s=|Q=QG|N zI}$N*cp7jsj7@8C-Vft?EsyJ7COFE-%zPXsYxDE7bG!CqU7B7VR=LpVzOd+TTIzfO z{@0+M%K~^MA)6xO@+M93b7f+R<(b}cC!i)MFo*?5zyHTOwR56U&=-zi6qYUM$uL`} zor^Kl_DbHTJ+7hcm2`hq+u@5d;9)DC5Qaw779 &WeZemY4CVEaZWEotGt<)-fmh1c1bn +Xa$cJ_Cyvyu?{2*Ghe Qh5ecO;m9`cv3x&5F{OJZW;79_!Jm~Dp( z^8( |fu{#ruXiHMXGy2w;Vsc}9mpAQJ^jn>hGq%BL7W`?xIL5 z%#R-_IJ=Lb=a4| D+L3LBXLt6#Xct5SXn2UA?}I|oi_doc)cy#S8l8F%W? zK6cogu~rg)Gd^PWp|Z?$li>E&Cr^ak#l!=}r<8=I`l~yxXM e#xY-@J91R9?fDx~&hiu5Mg?INoropqahpr9gQds8rcN zt2EBgiA_c6`(gN#Gf0i*bo>z|<4LLAtc-kj8|t^I{Us`Mx$jch=#nlPb+SckrSL zXBnT$^_qtjmzX+ceP14X|3UKWf%i@w{pN=c?gX+1PuJFp&(%lY@qI-tz<&8aM&-iK zW|f4rw5JE<28dvalnG!-iFu@bdF7G)M;~{B!8hA}^I*MfDfeXGfOj4gYiqN+bBPrn z=_0h^tu=pYg--uu+0i}ltxN|n+yRuc*RL!2xu@q9-bs3R2~64~GL4J%14;zP^chuQ z>ZuQ(ylI+u$5;i=UazmaI#saDs&i#|D?<^3i~0W533}uj>e#B?MX`)3JzMcnm;9JsLH5A}+IKEl0k*P7$9xv4S*g^KVUx%Fwa2zw zoji~s?CEpx@6WZAc#bTm-qCPjKm1$!8hgamm(5uf71zF+y^&r2uqSNF