fluentd222 1.16.2-x86_64-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
 - data/.deepsource.toml +13 -0
 - data/.github/ISSUE_TEMPLATE/bug_report.yaml +71 -0
 - data/.github/ISSUE_TEMPLATE/config.yml +5 -0
 - data/.github/ISSUE_TEMPLATE/feature_request.yaml +39 -0
 - data/.github/ISSUE_TEMPLATE.md +17 -0
 - data/.github/PULL_REQUEST_TEMPLATE.md +14 -0
 - data/.github/workflows/stale-actions.yml +24 -0
 - data/.github/workflows/test-ruby-head.yaml +31 -0
 - data/.github/workflows/test.yaml +32 -0
 - data/.gitignore +30 -0
 - data/ADOPTERS.md +5 -0
 - data/AUTHORS +2 -0
 - data/CHANGELOG.md +2720 -0
 - data/CONTRIBUTING.md +45 -0
 - data/GOVERNANCE.md +55 -0
 - data/Gemfile +9 -0
 - data/GithubWorkflow.md +78 -0
 - data/LICENSE +202 -0
 - data/MAINTAINERS.md +13 -0
 - data/README.md +75 -0
 - data/Rakefile +79 -0
 - data/SECURITY.md +14 -0
 - data/bin/fluent-binlog-reader +7 -0
 - data/bin/fluent-ca-generate +6 -0
 - data/bin/fluent-cap-ctl +7 -0
 - data/bin/fluent-cat +5 -0
 - data/bin/fluent-ctl +7 -0
 - data/bin/fluent-debug +5 -0
 - data/bin/fluent-gem +9 -0
 - data/bin/fluent-plugin-config-format +5 -0
 - data/bin/fluent-plugin-generate +5 -0
 - data/bin/fluentd +15 -0
 - data/code-of-conduct.md +3 -0
 - data/docs/SECURITY_AUDIT.pdf +0 -0
 - data/example/copy_roundrobin.conf +39 -0
 - data/example/counter.conf +18 -0
 - data/example/filter_stdout.conf +22 -0
 - data/example/in_forward.conf +14 -0
 - data/example/in_forward_client.conf +37 -0
 - data/example/in_forward_shared_key.conf +15 -0
 - data/example/in_forward_tls.conf +14 -0
 - data/example/in_forward_users.conf +24 -0
 - data/example/in_forward_workers.conf +21 -0
 - data/example/in_http.conf +16 -0
 - data/example/in_out_forward.conf +17 -0
 - data/example/in_sample_blocks.conf +17 -0
 - data/example/in_sample_with_compression.conf +23 -0
 - data/example/in_syslog.conf +15 -0
 - data/example/in_tail.conf +14 -0
 - data/example/in_tcp.conf +13 -0
 - data/example/in_udp.conf +13 -0
 - data/example/logevents.conf +25 -0
 - data/example/multi_filters.conf +61 -0
 - data/example/out_copy.conf +20 -0
 - data/example/out_exec_filter.conf +42 -0
 - data/example/out_file.conf +13 -0
 - data/example/out_forward.conf +35 -0
 - data/example/out_forward_buf_file.conf +23 -0
 - data/example/out_forward_client.conf +109 -0
 - data/example/out_forward_heartbeat_none.conf +16 -0
 - data/example/out_forward_sd.conf +17 -0
 - data/example/out_forward_shared_key.conf +36 -0
 - data/example/out_forward_tls.conf +18 -0
 - data/example/out_forward_users.conf +65 -0
 - data/example/out_null.conf +36 -0
 - data/example/sd.yaml +8 -0
 - data/example/secondary_file.conf +42 -0
 - data/example/suppress_config_dump.conf +7 -0
 - data/example/v0_12_filter.conf +78 -0
 - data/example/v1_literal_example.conf +36 -0
 - data/example/worker_section.conf +36 -0
 - data/fluent.conf +139 -0
 - data/fluentd.gemspec +54 -0
 - data/lib/fluent/agent.rb +168 -0
 - data/lib/fluent/capability.rb +87 -0
 - data/lib/fluent/clock.rb +66 -0
 - data/lib/fluent/command/binlog_reader.rb +244 -0
 - data/lib/fluent/command/bundler_injection.rb +45 -0
 - data/lib/fluent/command/ca_generate.rb +184 -0
 - data/lib/fluent/command/cap_ctl.rb +174 -0
 - data/lib/fluent/command/cat.rb +365 -0
 - data/lib/fluent/command/ctl.rb +180 -0
 - data/lib/fluent/command/debug.rb +103 -0
 - data/lib/fluent/command/fluentd.rb +374 -0
 - data/lib/fluent/command/plugin_config_formatter.rb +308 -0
 - data/lib/fluent/command/plugin_generator.rb +365 -0
 - data/lib/fluent/compat/call_super_mixin.rb +76 -0
 - data/lib/fluent/compat/detach_process_mixin.rb +33 -0
 - data/lib/fluent/compat/exec_util.rb +129 -0
 - data/lib/fluent/compat/file_util.rb +54 -0
 - data/lib/fluent/compat/filter.rb +68 -0
 - data/lib/fluent/compat/formatter.rb +111 -0
 - data/lib/fluent/compat/formatter_utils.rb +85 -0
 - data/lib/fluent/compat/handle_tag_and_time_mixin.rb +62 -0
 - data/lib/fluent/compat/handle_tag_name_mixin.rb +53 -0
 - data/lib/fluent/compat/input.rb +49 -0
 - data/lib/fluent/compat/output.rb +721 -0
 - data/lib/fluent/compat/output_chain.rb +60 -0
 - data/lib/fluent/compat/parser.rb +310 -0
 - data/lib/fluent/compat/parser_utils.rb +40 -0
 - data/lib/fluent/compat/propagate_default.rb +62 -0
 - data/lib/fluent/compat/record_filter_mixin.rb +34 -0
 - data/lib/fluent/compat/set_tag_key_mixin.rb +50 -0
 - data/lib/fluent/compat/set_time_key_mixin.rb +69 -0
 - data/lib/fluent/compat/socket_util.rb +165 -0
 - data/lib/fluent/compat/string_util.rb +34 -0
 - data/lib/fluent/compat/structured_format_mixin.rb +26 -0
 - data/lib/fluent/compat/type_converter.rb +90 -0
 - data/lib/fluent/config/basic_parser.rb +123 -0
 - data/lib/fluent/config/configure_proxy.rb +424 -0
 - data/lib/fluent/config/dsl.rb +152 -0
 - data/lib/fluent/config/element.rb +265 -0
 - data/lib/fluent/config/error.rb +44 -0
 - data/lib/fluent/config/literal_parser.rb +286 -0
 - data/lib/fluent/config/parser.rb +107 -0
 - data/lib/fluent/config/section.rb +272 -0
 - data/lib/fluent/config/types.rb +249 -0
 - data/lib/fluent/config/v1_parser.rb +192 -0
 - data/lib/fluent/config/yaml_parser/fluent_value.rb +47 -0
 - data/lib/fluent/config/yaml_parser/loader.rb +108 -0
 - data/lib/fluent/config/yaml_parser/parser.rb +166 -0
 - data/lib/fluent/config/yaml_parser/section_builder.rb +107 -0
 - data/lib/fluent/config/yaml_parser.rb +56 -0
 - data/lib/fluent/config.rb +89 -0
 - data/lib/fluent/configurable.rb +201 -0
 - data/lib/fluent/counter/base_socket.rb +44 -0
 - data/lib/fluent/counter/client.rb +297 -0
 - data/lib/fluent/counter/error.rb +86 -0
 - data/lib/fluent/counter/mutex_hash.rb +163 -0
 - data/lib/fluent/counter/server.rb +273 -0
 - data/lib/fluent/counter/store.rb +205 -0
 - data/lib/fluent/counter/validator.rb +145 -0
 - data/lib/fluent/counter.rb +23 -0
 - data/lib/fluent/daemon.rb +13 -0
 - data/lib/fluent/daemonizer.rb +88 -0
 - data/lib/fluent/engine.rb +253 -0
 - data/lib/fluent/env.rb +40 -0
 - data/lib/fluent/error.rb +37 -0
 - data/lib/fluent/event.rb +330 -0
 - data/lib/fluent/event_router.rb +315 -0
 - data/lib/fluent/ext_monitor_require.rb +28 -0
 - data/lib/fluent/file_wrapper.rb +137 -0
 - data/lib/fluent/filter.rb +21 -0
 - data/lib/fluent/fluent_log_event_router.rb +139 -0
 - data/lib/fluent/formatter.rb +23 -0
 - data/lib/fluent/input.rb +21 -0
 - data/lib/fluent/label.rb +46 -0
 - data/lib/fluent/load.rb +34 -0
 - data/lib/fluent/log/console_adapter.rb +66 -0
 - data/lib/fluent/log.rb +752 -0
 - data/lib/fluent/match.rb +187 -0
 - data/lib/fluent/mixin.rb +31 -0
 - data/lib/fluent/msgpack_factory.rb +111 -0
 - data/lib/fluent/oj_options.rb +61 -0
 - data/lib/fluent/output.rb +29 -0
 - data/lib/fluent/output_chain.rb +23 -0
 - data/lib/fluent/parser.rb +23 -0
 - data/lib/fluent/plugin/bare_output.rb +104 -0
 - data/lib/fluent/plugin/base.rb +214 -0
 - data/lib/fluent/plugin/buf_file.rb +242 -0
 - data/lib/fluent/plugin/buf_file_single.rb +254 -0
 - data/lib/fluent/plugin/buf_memory.rb +34 -0
 - data/lib/fluent/plugin/buffer/chunk.rb +240 -0
 - data/lib/fluent/plugin/buffer/file_chunk.rb +413 -0
 - data/lib/fluent/plugin/buffer/file_single_chunk.rb +310 -0
 - data/lib/fluent/plugin/buffer/memory_chunk.rb +91 -0
 - data/lib/fluent/plugin/buffer.rb +941 -0
 - data/lib/fluent/plugin/compressable.rb +96 -0
 - data/lib/fluent/plugin/exec_util.rb +22 -0
 - data/lib/fluent/plugin/file_util.rb +22 -0
 - data/lib/fluent/plugin/filter.rb +127 -0
 - data/lib/fluent/plugin/filter_grep.rb +189 -0
 - data/lib/fluent/plugin/filter_parser.rb +130 -0
 - data/lib/fluent/plugin/filter_record_transformer.rb +324 -0
 - data/lib/fluent/plugin/filter_stdout.rb +53 -0
 - data/lib/fluent/plugin/formatter.rb +75 -0
 - data/lib/fluent/plugin/formatter_csv.rb +78 -0
 - data/lib/fluent/plugin/formatter_hash.rb +35 -0
 - data/lib/fluent/plugin/formatter_json.rb +59 -0
 - data/lib/fluent/plugin/formatter_ltsv.rb +44 -0
 - data/lib/fluent/plugin/formatter_msgpack.rb +33 -0
 - data/lib/fluent/plugin/formatter_out_file.rb +53 -0
 - data/lib/fluent/plugin/formatter_single_value.rb +36 -0
 - data/lib/fluent/plugin/formatter_stdout.rb +76 -0
 - data/lib/fluent/plugin/formatter_tsv.rb +40 -0
 - data/lib/fluent/plugin/in_debug_agent.rb +71 -0
 - data/lib/fluent/plugin/in_dummy.rb +18 -0
 - data/lib/fluent/plugin/in_exec.rb +110 -0
 - data/lib/fluent/plugin/in_forward.rb +473 -0
 - data/lib/fluent/plugin/in_gc_stat.rb +72 -0
 - data/lib/fluent/plugin/in_http.rb +677 -0
 - data/lib/fluent/plugin/in_monitor_agent.rb +412 -0
 - data/lib/fluent/plugin/in_object_space.rb +93 -0
 - data/lib/fluent/plugin/in_sample.rb +141 -0
 - data/lib/fluent/plugin/in_syslog.rb +276 -0
 - data/lib/fluent/plugin/in_tail/group_watch.rb +204 -0
 - data/lib/fluent/plugin/in_tail/position_file.rb +269 -0
 - data/lib/fluent/plugin/in_tail.rb +1299 -0
 - data/lib/fluent/plugin/in_tcp.rb +226 -0
 - data/lib/fluent/plugin/in_udp.rb +92 -0
 - data/lib/fluent/plugin/in_unix.rb +195 -0
 - data/lib/fluent/plugin/input.rb +75 -0
 - data/lib/fluent/plugin/metrics.rb +119 -0
 - data/lib/fluent/plugin/metrics_local.rb +96 -0
 - data/lib/fluent/plugin/multi_output.rb +195 -0
 - data/lib/fluent/plugin/out_copy.rb +120 -0
 - data/lib/fluent/plugin/out_exec.rb +105 -0
 - data/lib/fluent/plugin/out_exec_filter.rb +319 -0
 - data/lib/fluent/plugin/out_file.rb +340 -0
 - data/lib/fluent/plugin/out_forward/ack_handler.rb +176 -0
 - data/lib/fluent/plugin/out_forward/connection_manager.rb +113 -0
 - data/lib/fluent/plugin/out_forward/error.rb +28 -0
 - data/lib/fluent/plugin/out_forward/failure_detector.rb +84 -0
 - data/lib/fluent/plugin/out_forward/handshake_protocol.rb +125 -0
 - data/lib/fluent/plugin/out_forward/load_balancer.rb +114 -0
 - data/lib/fluent/plugin/out_forward/socket_cache.rb +142 -0
 - data/lib/fluent/plugin/out_forward.rb +826 -0
 - data/lib/fluent/plugin/out_http.rb +275 -0
 - data/lib/fluent/plugin/out_null.rb +74 -0
 - data/lib/fluent/plugin/out_relabel.rb +32 -0
 - data/lib/fluent/plugin/out_roundrobin.rb +84 -0
 - data/lib/fluent/plugin/out_secondary_file.rb +148 -0
 - data/lib/fluent/plugin/out_stdout.rb +74 -0
 - data/lib/fluent/plugin/out_stream.rb +130 -0
 - data/lib/fluent/plugin/output.rb +1603 -0
 - data/lib/fluent/plugin/owned_by_mixin.rb +41 -0
 - data/lib/fluent/plugin/parser.rb +274 -0
 - data/lib/fluent/plugin/parser_apache.rb +28 -0
 - data/lib/fluent/plugin/parser_apache2.rb +88 -0
 - data/lib/fluent/plugin/parser_apache_error.rb +26 -0
 - data/lib/fluent/plugin/parser_csv.rb +114 -0
 - data/lib/fluent/plugin/parser_json.rb +96 -0
 - data/lib/fluent/plugin/parser_ltsv.rb +51 -0
 - data/lib/fluent/plugin/parser_msgpack.rb +50 -0
 - data/lib/fluent/plugin/parser_multiline.rb +152 -0
 - data/lib/fluent/plugin/parser_nginx.rb +28 -0
 - data/lib/fluent/plugin/parser_none.rb +36 -0
 - data/lib/fluent/plugin/parser_regexp.rb +68 -0
 - data/lib/fluent/plugin/parser_syslog.rb +496 -0
 - data/lib/fluent/plugin/parser_tsv.rb +42 -0
 - data/lib/fluent/plugin/sd_file.rb +156 -0
 - data/lib/fluent/plugin/sd_srv.rb +135 -0
 - data/lib/fluent/plugin/sd_static.rb +58 -0
 - data/lib/fluent/plugin/service_discovery.rb +65 -0
 - data/lib/fluent/plugin/socket_util.rb +22 -0
 - data/lib/fluent/plugin/storage.rb +84 -0
 - data/lib/fluent/plugin/storage_local.rb +162 -0
 - data/lib/fluent/plugin/string_util.rb +22 -0
 - data/lib/fluent/plugin.rb +206 -0
 - data/lib/fluent/plugin_helper/cert_option.rb +191 -0
 - data/lib/fluent/plugin_helper/child_process.rb +369 -0
 - data/lib/fluent/plugin_helper/compat_parameters.rb +343 -0
 - data/lib/fluent/plugin_helper/counter.rb +51 -0
 - data/lib/fluent/plugin_helper/event_emitter.rb +100 -0
 - data/lib/fluent/plugin_helper/event_loop.rb +170 -0
 - data/lib/fluent/plugin_helper/extract.rb +104 -0
 - data/lib/fluent/plugin_helper/formatter.rb +147 -0
 - data/lib/fluent/plugin_helper/http_server/app.rb +79 -0
 - data/lib/fluent/plugin_helper/http_server/compat/server.rb +92 -0
 - data/lib/fluent/plugin_helper/http_server/compat/ssl_context_extractor.rb +52 -0
 - data/lib/fluent/plugin_helper/http_server/compat/webrick_handler.rb +58 -0
 - data/lib/fluent/plugin_helper/http_server/methods.rb +35 -0
 - data/lib/fluent/plugin_helper/http_server/request.rb +42 -0
 - data/lib/fluent/plugin_helper/http_server/router.rb +54 -0
 - data/lib/fluent/plugin_helper/http_server/server.rb +94 -0
 - data/lib/fluent/plugin_helper/http_server/ssl_context_builder.rb +41 -0
 - data/lib/fluent/plugin_helper/http_server.rb +135 -0
 - data/lib/fluent/plugin_helper/inject.rb +154 -0
 - data/lib/fluent/plugin_helper/metrics.rb +129 -0
 - data/lib/fluent/plugin_helper/parser.rb +147 -0
 - data/lib/fluent/plugin_helper/record_accessor.rb +207 -0
 - data/lib/fluent/plugin_helper/retry_state.rb +219 -0
 - data/lib/fluent/plugin_helper/server.rb +828 -0
 - data/lib/fluent/plugin_helper/service_discovery/manager.rb +146 -0
 - data/lib/fluent/plugin_helper/service_discovery/round_robin_balancer.rb +43 -0
 - data/lib/fluent/plugin_helper/service_discovery.rb +125 -0
 - data/lib/fluent/plugin_helper/socket.rb +288 -0
 - data/lib/fluent/plugin_helper/socket_option.rb +98 -0
 - data/lib/fluent/plugin_helper/storage.rb +349 -0
 - data/lib/fluent/plugin_helper/thread.rb +180 -0
 - data/lib/fluent/plugin_helper/timer.rb +92 -0
 - data/lib/fluent/plugin_helper.rb +75 -0
 - data/lib/fluent/plugin_id.rb +93 -0
 - data/lib/fluent/process.rb +22 -0
 - data/lib/fluent/registry.rb +117 -0
 - data/lib/fluent/root_agent.rb +372 -0
 - data/lib/fluent/rpc.rb +95 -0
 - data/lib/fluent/static_config_analysis.rb +194 -0
 - data/lib/fluent/supervisor.rb +1076 -0
 - data/lib/fluent/system_config.rb +189 -0
 - data/lib/fluent/test/base.rb +78 -0
 - data/lib/fluent/test/driver/base.rb +231 -0
 - data/lib/fluent/test/driver/base_owned.rb +83 -0
 - data/lib/fluent/test/driver/base_owner.rb +135 -0
 - data/lib/fluent/test/driver/event_feeder.rb +98 -0
 - data/lib/fluent/test/driver/filter.rb +61 -0
 - data/lib/fluent/test/driver/formatter.rb +30 -0
 - data/lib/fluent/test/driver/input.rb +31 -0
 - data/lib/fluent/test/driver/multi_output.rb +53 -0
 - data/lib/fluent/test/driver/output.rb +102 -0
 - data/lib/fluent/test/driver/parser.rb +30 -0
 - data/lib/fluent/test/driver/storage.rb +30 -0
 - data/lib/fluent/test/driver/test_event_router.rb +45 -0
 - data/lib/fluent/test/filter_test.rb +77 -0
 - data/lib/fluent/test/formatter_test.rb +65 -0
 - data/lib/fluent/test/helpers.rb +134 -0
 - data/lib/fluent/test/input_test.rb +174 -0
 - data/lib/fluent/test/log.rb +79 -0
 - data/lib/fluent/test/output_test.rb +156 -0
 - data/lib/fluent/test/parser_test.rb +70 -0
 - data/lib/fluent/test/startup_shutdown.rb +44 -0
 - data/lib/fluent/test.rb +58 -0
 - data/lib/fluent/time.rb +512 -0
 - data/lib/fluent/timezone.rb +171 -0
 - data/lib/fluent/tls.rb +81 -0
 - data/lib/fluent/unique_id.rb +39 -0
 - data/lib/fluent/variable_store.rb +40 -0
 - data/lib/fluent/version.rb +21 -0
 - data/lib/fluent/win32api.rb +38 -0
 - data/lib/fluent/winsvc.rb +100 -0
 - data/templates/new_gem/Gemfile +3 -0
 - data/templates/new_gem/README.md.erb +43 -0
 - data/templates/new_gem/Rakefile +13 -0
 - data/templates/new_gem/fluent-plugin.gemspec.erb +27 -0
 - data/templates/new_gem/lib/fluent/plugin/filter.rb.erb +14 -0
 - data/templates/new_gem/lib/fluent/plugin/formatter.rb.erb +14 -0
 - data/templates/new_gem/lib/fluent/plugin/input.rb.erb +11 -0
 - data/templates/new_gem/lib/fluent/plugin/output.rb.erb +11 -0
 - data/templates/new_gem/lib/fluent/plugin/parser.rb.erb +15 -0
 - data/templates/new_gem/lib/fluent/plugin/storage.rb.erb +40 -0
 - data/templates/new_gem/test/helper.rb.erb +7 -0
 - data/templates/new_gem/test/plugin/test_filter.rb.erb +18 -0
 - data/templates/new_gem/test/plugin/test_formatter.rb.erb +18 -0
 - data/templates/new_gem/test/plugin/test_input.rb.erb +18 -0
 - data/templates/new_gem/test/plugin/test_output.rb.erb +18 -0
 - data/templates/new_gem/test/plugin/test_parser.rb.erb +18 -0
 - data/templates/new_gem/test/plugin/test_storage.rb.erb +18 -0
 - data/templates/plugin_config_formatter/param.md-compact.erb +25 -0
 - data/templates/plugin_config_formatter/param.md-table.erb +10 -0
 - data/templates/plugin_config_formatter/param.md.erb +34 -0
 - data/templates/plugin_config_formatter/section.md.erb +12 -0
 - data/test/command/test_binlog_reader.rb +362 -0
 - data/test/command/test_ca_generate.rb +70 -0
 - data/test/command/test_cap_ctl.rb +100 -0
 - data/test/command/test_cat.rb +128 -0
 - data/test/command/test_ctl.rb +56 -0
 - data/test/command/test_fluentd.rb +1291 -0
 - data/test/command/test_plugin_config_formatter.rb +397 -0
 - data/test/command/test_plugin_generator.rb +109 -0
 - data/test/compat/test_calls_super.rb +166 -0
 - data/test/compat/test_parser.rb +92 -0
 - data/test/config/assertions.rb +42 -0
 - data/test/config/test_config_parser.rb +551 -0
 - data/test/config/test_configurable.rb +1784 -0
 - data/test/config/test_configure_proxy.rb +604 -0
 - data/test/config/test_dsl.rb +415 -0
 - data/test/config/test_element.rb +518 -0
 - data/test/config/test_literal_parser.rb +309 -0
 - data/test/config/test_plugin_configuration.rb +56 -0
 - data/test/config/test_section.rb +191 -0
 - data/test/config/test_system_config.rb +195 -0
 - data/test/config/test_types.rb +408 -0
 - data/test/counter/test_client.rb +563 -0
 - data/test/counter/test_error.rb +44 -0
 - data/test/counter/test_mutex_hash.rb +179 -0
 - data/test/counter/test_server.rb +589 -0
 - data/test/counter/test_store.rb +258 -0
 - data/test/counter/test_validator.rb +137 -0
 - data/test/helper.rb +155 -0
 - data/test/helpers/fuzzy_assert.rb +89 -0
 - data/test/helpers/process_extenstion.rb +33 -0
 - data/test/log/test_console_adapter.rb +110 -0
 - data/test/plugin/data/2010/01/20100102-030405.log +0 -0
 - data/test/plugin/data/2010/01/20100102-030406.log +0 -0
 - data/test/plugin/data/2010/01/20100102.log +0 -0
 - data/test/plugin/data/log/bar +0 -0
 - data/test/plugin/data/log/foo/bar.log +0 -0
 - data/test/plugin/data/log/foo/bar2 +0 -0
 - data/test/plugin/data/log/test.log +0 -0
 - data/test/plugin/data/sd_file/config +11 -0
 - data/test/plugin/data/sd_file/config.json +17 -0
 - data/test/plugin/data/sd_file/config.yaml +11 -0
 - data/test/plugin/data/sd_file/config.yml +11 -0
 - data/test/plugin/data/sd_file/invalid_config.yml +7 -0
 - data/test/plugin/in_tail/test_fifo.rb +121 -0
 - data/test/plugin/in_tail/test_io_handler.rb +150 -0
 - data/test/plugin/in_tail/test_position_file.rb +346 -0
 - data/test/plugin/out_forward/test_ack_handler.rb +140 -0
 - data/test/plugin/out_forward/test_connection_manager.rb +145 -0
 - data/test/plugin/out_forward/test_handshake_protocol.rb +112 -0
 - data/test/plugin/out_forward/test_load_balancer.rb +106 -0
 - data/test/plugin/out_forward/test_socket_cache.rb +174 -0
 - data/test/plugin/test_bare_output.rb +131 -0
 - data/test/plugin/test_base.rb +247 -0
 - data/test/plugin/test_buf_file.rb +1314 -0
 - data/test/plugin/test_buf_file_single.rb +898 -0
 - data/test/plugin/test_buf_memory.rb +42 -0
 - data/test/plugin/test_buffer.rb +1434 -0
 - data/test/plugin/test_buffer_chunk.rb +209 -0
 - data/test/plugin/test_buffer_file_chunk.rb +871 -0
 - data/test/plugin/test_buffer_file_single_chunk.rb +611 -0
 - data/test/plugin/test_buffer_memory_chunk.rb +339 -0
 - data/test/plugin/test_compressable.rb +87 -0
 - data/test/plugin/test_file_util.rb +96 -0
 - data/test/plugin/test_filter.rb +368 -0
 - data/test/plugin/test_filter_grep.rb +697 -0
 - data/test/plugin/test_filter_parser.rb +731 -0
 - data/test/plugin/test_filter_record_transformer.rb +577 -0
 - data/test/plugin/test_filter_stdout.rb +207 -0
 - data/test/plugin/test_formatter_csv.rb +136 -0
 - data/test/plugin/test_formatter_hash.rb +38 -0
 - data/test/plugin/test_formatter_json.rb +61 -0
 - data/test/plugin/test_formatter_ltsv.rb +70 -0
 - data/test/plugin/test_formatter_msgpack.rb +28 -0
 - data/test/plugin/test_formatter_out_file.rb +116 -0
 - data/test/plugin/test_formatter_single_value.rb +44 -0
 - data/test/plugin/test_formatter_tsv.rb +76 -0
 - data/test/plugin/test_in_debug_agent.rb +49 -0
 - data/test/plugin/test_in_exec.rb +261 -0
 - data/test/plugin/test_in_forward.rb +1178 -0
 - data/test/plugin/test_in_gc_stat.rb +62 -0
 - data/test/plugin/test_in_http.rb +1102 -0
 - data/test/plugin/test_in_monitor_agent.rb +922 -0
 - data/test/plugin/test_in_object_space.rb +66 -0
 - data/test/plugin/test_in_sample.rb +190 -0
 - data/test/plugin/test_in_syslog.rb +505 -0
 - data/test/plugin/test_in_tail.rb +3125 -0
 - data/test/plugin/test_in_tcp.rb +328 -0
 - data/test/plugin/test_in_udp.rb +296 -0
 - data/test/plugin/test_in_unix.rb +181 -0
 - data/test/plugin/test_input.rb +137 -0
 - data/test/plugin/test_metadata.rb +89 -0
 - data/test/plugin/test_metrics.rb +294 -0
 - data/test/plugin/test_metrics_local.rb +96 -0
 - data/test/plugin/test_multi_output.rb +204 -0
 - data/test/plugin/test_out_copy.rb +308 -0
 - data/test/plugin/test_out_exec.rb +312 -0
 - data/test/plugin/test_out_exec_filter.rb +606 -0
 - data/test/plugin/test_out_file.rb +1038 -0
 - data/test/plugin/test_out_forward.rb +1361 -0
 - data/test/plugin/test_out_http.rb +429 -0
 - data/test/plugin/test_out_null.rb +105 -0
 - data/test/plugin/test_out_relabel.rb +28 -0
 - data/test/plugin/test_out_roundrobin.rb +146 -0
 - data/test/plugin/test_out_secondary_file.rb +458 -0
 - data/test/plugin/test_out_stdout.rb +205 -0
 - data/test/plugin/test_out_stream.rb +103 -0
 - data/test/plugin/test_output.rb +1334 -0
 - data/test/plugin/test_output_as_buffered.rb +2024 -0
 - data/test/plugin/test_output_as_buffered_backup.rb +363 -0
 - data/test/plugin/test_output_as_buffered_compress.rb +179 -0
 - data/test/plugin/test_output_as_buffered_overflow.rb +250 -0
 - data/test/plugin/test_output_as_buffered_retries.rb +966 -0
 - data/test/plugin/test_output_as_buffered_secondary.rb +882 -0
 - data/test/plugin/test_output_as_standard.rb +374 -0
 - data/test/plugin/test_owned_by.rb +34 -0
 - data/test/plugin/test_parser.rb +399 -0
 - data/test/plugin/test_parser_apache.rb +42 -0
 - data/test/plugin/test_parser_apache2.rb +47 -0
 - data/test/plugin/test_parser_apache_error.rb +45 -0
 - data/test/plugin/test_parser_csv.rb +200 -0
 - data/test/plugin/test_parser_json.rb +138 -0
 - data/test/plugin/test_parser_labeled_tsv.rb +160 -0
 - data/test/plugin/test_parser_multiline.rb +111 -0
 - data/test/plugin/test_parser_nginx.rb +88 -0
 - data/test/plugin/test_parser_none.rb +52 -0
 - data/test/plugin/test_parser_regexp.rb +284 -0
 - data/test/plugin/test_parser_syslog.rb +650 -0
 - data/test/plugin/test_parser_tsv.rb +122 -0
 - data/test/plugin/test_sd_file.rb +228 -0
 - data/test/plugin/test_sd_srv.rb +230 -0
 - data/test/plugin/test_storage.rb +166 -0
 - data/test/plugin/test_storage_local.rb +335 -0
 - data/test/plugin/test_string_util.rb +26 -0
 - data/test/plugin_helper/data/cert/cert-key.pem +27 -0
 - data/test/plugin_helper/data/cert/cert-with-CRLF.pem +19 -0
 - data/test/plugin_helper/data/cert/cert-with-no-newline.pem +19 -0
 - data/test/plugin_helper/data/cert/cert.pem +19 -0
 - data/test/plugin_helper/data/cert/cert_chains/ca-cert-key.pem +27 -0
 - data/test/plugin_helper/data/cert/cert_chains/ca-cert.pem +20 -0
 - data/test/plugin_helper/data/cert/cert_chains/cert-key.pem +27 -0
 - data/test/plugin_helper/data/cert/cert_chains/cert.pem +40 -0
 - data/test/plugin_helper/data/cert/empty.pem +0 -0
 - data/test/plugin_helper/data/cert/generate_cert.rb +125 -0
 - data/test/plugin_helper/data/cert/with_ca/ca-cert-key-pass.pem +30 -0
 - data/test/plugin_helper/data/cert/with_ca/ca-cert-key.pem +27 -0
 - data/test/plugin_helper/data/cert/with_ca/ca-cert-pass.pem +20 -0
 - data/test/plugin_helper/data/cert/with_ca/ca-cert.pem +20 -0
 - data/test/plugin_helper/data/cert/with_ca/cert-key-pass.pem +30 -0
 - data/test/plugin_helper/data/cert/with_ca/cert-key.pem +27 -0
 - data/test/plugin_helper/data/cert/with_ca/cert-pass.pem +21 -0
 - data/test/plugin_helper/data/cert/with_ca/cert.pem +21 -0
 - data/test/plugin_helper/data/cert/without_ca/cert-key-pass.pem +30 -0
 - data/test/plugin_helper/data/cert/without_ca/cert-key.pem +27 -0
 - data/test/plugin_helper/data/cert/without_ca/cert-pass.pem +20 -0
 - data/test/plugin_helper/data/cert/without_ca/cert.pem +20 -0
 - data/test/plugin_helper/http_server/test_app.rb +65 -0
 - data/test/plugin_helper/http_server/test_route.rb +32 -0
 - data/test/plugin_helper/service_discovery/test_manager.rb +93 -0
 - data/test/plugin_helper/service_discovery/test_round_robin_balancer.rb +21 -0
 - data/test/plugin_helper/test_cert_option.rb +25 -0
 - data/test/plugin_helper/test_child_process.rb +862 -0
 - data/test/plugin_helper/test_compat_parameters.rb +358 -0
 - data/test/plugin_helper/test_event_emitter.rb +80 -0
 - data/test/plugin_helper/test_event_loop.rb +52 -0
 - data/test/plugin_helper/test_extract.rb +194 -0
 - data/test/plugin_helper/test_formatter.rb +255 -0
 - data/test/plugin_helper/test_http_server_helper.rb +372 -0
 - data/test/plugin_helper/test_inject.rb +561 -0
 - data/test/plugin_helper/test_metrics.rb +137 -0
 - data/test/plugin_helper/test_parser.rb +264 -0
 - data/test/plugin_helper/test_record_accessor.rb +238 -0
 - data/test/plugin_helper/test_retry_state.rb +1006 -0
 - data/test/plugin_helper/test_server.rb +1895 -0
 - data/test/plugin_helper/test_service_discovery.rb +165 -0
 - data/test/plugin_helper/test_socket.rb +146 -0
 - data/test/plugin_helper/test_storage.rb +542 -0
 - data/test/plugin_helper/test_thread.rb +164 -0
 - data/test/plugin_helper/test_timer.rb +130 -0
 - data/test/scripts/exec_script.rb +32 -0
 - data/test/scripts/fluent/plugin/formatter1/formatter_test1.rb +7 -0
 - data/test/scripts/fluent/plugin/formatter2/formatter_test2.rb +7 -0
 - data/test/scripts/fluent/plugin/formatter_known.rb +8 -0
 - data/test/scripts/fluent/plugin/out_test.rb +81 -0
 - data/test/scripts/fluent/plugin/out_test2.rb +80 -0
 - data/test/scripts/fluent/plugin/parser_known.rb +4 -0
 - data/test/test_capability.rb +74 -0
 - data/test/test_clock.rb +164 -0
 - data/test/test_config.rb +369 -0
 - data/test/test_configdsl.rb +148 -0
 - data/test/test_daemonizer.rb +91 -0
 - data/test/test_engine.rb +203 -0
 - data/test/test_event.rb +531 -0
 - data/test/test_event_router.rb +348 -0
 - data/test/test_event_time.rb +199 -0
 - data/test/test_file_wrapper.rb +53 -0
 - data/test/test_filter.rb +121 -0
 - data/test/test_fluent_log_event_router.rb +99 -0
 - data/test/test_formatter.rb +369 -0
 - data/test/test_input.rb +31 -0
 - data/test/test_log.rb +1076 -0
 - data/test/test_match.rb +148 -0
 - data/test/test_mixin.rb +351 -0
 - data/test/test_msgpack_factory.rb +50 -0
 - data/test/test_oj_options.rb +55 -0
 - data/test/test_output.rb +278 -0
 - data/test/test_plugin.rb +251 -0
 - data/test/test_plugin_classes.rb +370 -0
 - data/test/test_plugin_helper.rb +81 -0
 - data/test/test_plugin_id.rb +119 -0
 - data/test/test_process.rb +14 -0
 - data/test/test_root_agent.rb +951 -0
 - data/test/test_static_config_analysis.rb +177 -0
 - data/test/test_supervisor.rb +821 -0
 - data/test/test_test_drivers.rb +136 -0
 - data/test/test_time_formatter.rb +301 -0
 - data/test/test_time_parser.rb +362 -0
 - data/test/test_tls.rb +65 -0
 - data/test/test_unique_id.rb +47 -0
 - data/test/test_variable_store.rb +65 -0
 - metadata +1183 -0
 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN RSA PRIVATE KEY-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIEogIBAAKCAQEAzQtGZgClcBIDKC0U1sQpznVV9HzAZANDVazrDGA8Euf8Kx4X
         
     | 
| 
      
 3 
     | 
    
         
            +
            dnVoE+HzwAviL4VLDPzNBLyoZ2wf3wg6D+1UAhA0DqPRCihhfJqBX0WgewakSl5a
         
     | 
| 
      
 4 
     | 
    
         
            +
            wrc1XIXtiMxcWE/5+XtodjO71gECBgmd/l0UtdFY7mMt/gArH8PQf29ABGiB1zzn
         
     | 
| 
      
 5 
     | 
    
         
            +
            d0MNgA0r2OlXICe4kDzTHqDBv7nFgQFro2vkI/QJD5fABbb62HRWgUfQ13DUShSG
         
     | 
| 
      
 6 
     | 
    
         
            +
            H5FPkMxTkCs5GShyjYCC5IhI+AKx5RWvb4kuMRsxWC7JHc/XKPdbeLkNWRCFzTnO
         
     | 
| 
      
 7 
     | 
    
         
            +
            OR09Qdp45tBbXtX0IjInxsnNOBzW0zTSg0xUtwIDAQABAoIBAG4N5zNIlYOZp2gh
         
     | 
| 
      
 8 
     | 
    
         
            +
            ClZb47SU9hXL/9euiK2rql1yKcxcB9V8yUsjqUFCvfoOZtDq0mWeKsyoFhusxU6I
         
     | 
| 
      
 9 
     | 
    
         
            +
            s+FomPaii85vzvuMwQaIR3hDfueJoRTpn/1zKIkIuX37cnVUN+/YdTE8g01SLSvg
         
     | 
| 
      
 10 
     | 
    
         
            +
            bZThkQQl4X3SbhUvMfZSu84qgEncdtJ08zx81CB1Fpn0HIjpmpRM1F9jjDwtkVUw
         
     | 
| 
      
 11 
     | 
    
         
            +
            1gVQm9g7fwbgRfqSUyKkEqKvCVYnLQx3X5inuAEps4zIzAXF8RtxFymyHfExzZqr
         
     | 
| 
      
 12 
     | 
    
         
            +
            Pj5uYjTbf/wkaU9nWQzXeCbRTz3ZrjvFnisFt1HI2uijd1DjJ7CB7Ls752RWekXS
         
     | 
| 
      
 13 
     | 
    
         
            +
            Yc9FFwECgYEA/gZ3Hx4dIb6NW6UmPKjiQex/tVqwCRaxGtpA7qensf187N2nn4FD
         
     | 
| 
      
 14 
     | 
    
         
            +
            jdQJ69XmoDRKr2X+e7tsgKpETGufdDQ8MNBHz2krfqXVSlsEIOjeLfRRqhh+8Bcr
         
     | 
| 
      
 15 
     | 
    
         
            +
            flri0sumVbk0X9bnXzyCc4AGcRhtT9U69HCMTlly2z0pjIlVvmFXARECgYEAzqNV
         
     | 
| 
      
 16 
     | 
    
         
            +
            FSHHbEU+5zToJK0jyTaE/F+u9n5YKDcRN9RrKrEYcoUzKbIYJrUulbRGfsqAxY5L
         
     | 
| 
      
 17 
     | 
    
         
            +
            KtIDRI9NmPDBYqBwqSFnm9LcLn8CgQH/rRSFJv1Iw+sPHd/Nrk1KWjpO0OYRgfiB
         
     | 
| 
      
 18 
     | 
    
         
            +
            oxcgGSzHp0OZP+e7Trtq1TKW6VyadEsPZ7oKeUcCgYB9TiMkrm4gXybLtkOOWKCD
         
     | 
| 
      
 19 
     | 
    
         
            +
            dG3qv7lmQlNKs66kCv+lxS0CirRM8i6on5flRbZmAGV28BEAaAu1zEe0isI1SC8I
         
     | 
| 
      
 20 
     | 
    
         
            +
            xTUnEvHpn1P/QbZfpX8zm/lMtpinRkamJZ8N7Hc4ggtb2152lBqlbtm+oBYL81sJ
         
     | 
| 
      
 21 
     | 
    
         
            +
            iRss6uLFUv5T3Mr3Bn0sgQKBgGr4xQf+h6V2J307t12dQCRfE/MueX3jpDGVaFV1
         
     | 
| 
      
 22 
     | 
    
         
            +
            otDkAxrt97GDH9uR+f7H56KlpIohAqq1M7nfUbV2FTbAhfIYd/GD9DYhzCMK7Ngm
         
     | 
| 
      
 23 
     | 
    
         
            +
            AlRP1MaPvjCh9nFgU7hn7PtZzwBwrHPIefZuZyEg7onVpfK5NTIPUW6XYOIJJX12
         
     | 
| 
      
 24 
     | 
    
         
            +
            IwvrAoGAGwg2Cq6Vs/KkiCDxoy42HVZLS/DS/iHfUTAXtekF88qwT1zHFqF1ImvO
         
     | 
| 
      
 25 
     | 
    
         
            +
            +FEUx8IbxY1oifSQc3Jw9HYnmYqmFW1PThNG3CwyaOGgtlEFcvhHsNjLRGJSQbN2
         
     | 
| 
      
 26 
     | 
    
         
            +
            cUYBe2hHXii7OL8T8kIvLlCAKGA8IIfPGhsu3uUtrvMBo5c0WmQ=
         
     | 
| 
      
 27 
     | 
    
         
            +
            -----END RSA PRIVATE KEY-----
         
     | 
| 
         @@ -0,0 +1,40 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN CERTIFICATE-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIDQjCCAiqgAwIBAgILANkmymLgb5e04tcwDQYJKoZIhvcNAQELBQAwVDELMAkG
         
     | 
| 
      
 3 
     | 
    
         
            +
            A1UEBhMCVVMxCzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MSAw
         
     | 
| 
      
 4 
     | 
    
         
            +
            HgYDVQQDDBdjYTIudGVzdGluZy5mbHVlbnRkLm9yZzAgFw03MDAxMDEwMDAwMDBa
         
     | 
| 
      
 5 
     | 
    
         
            +
            GA8yMTE4MTAyNzA4MDY1N1owVzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRYw
         
     | 
| 
      
 6 
     | 
    
         
            +
            FAYDVQQHDA1Nb3VudGFpbiBWaWV3MSMwIQYDVQQDDBpzZXJ2ZXIudGVzdGluZy5m
         
     | 
| 
      
 7 
     | 
    
         
            +
            bHVlbnRkLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM0LRmYA
         
     | 
| 
      
 8 
     | 
    
         
            +
            pXASAygtFNbEKc51VfR8wGQDQ1Ws6wxgPBLn/CseF3Z1aBPh88AL4i+FSwz8zQS8
         
     | 
| 
      
 9 
     | 
    
         
            +
            qGdsH98IOg/tVAIQNA6j0QooYXyagV9FoHsGpEpeWsK3NVyF7YjMXFhP+fl7aHYz
         
     | 
| 
      
 10 
     | 
    
         
            +
            u9YBAgYJnf5dFLXRWO5jLf4AKx/D0H9vQARogdc853dDDYANK9jpVyAnuJA80x6g
         
     | 
| 
      
 11 
     | 
    
         
            +
            wb+5xYEBa6Nr5CP0CQ+XwAW2+th0VoFH0Ndw1EoUhh+RT5DMU5ArORkoco2AguSI
         
     | 
| 
      
 12 
     | 
    
         
            +
            SPgCseUVr2+JLjEbMVguyR3P1yj3W3i5DVkQhc05zjkdPUHaeObQW17V9CIyJ8bJ
         
     | 
| 
      
 13 
     | 
    
         
            +
            zTgc1tM00oNMVLcCAwEAAaMQMA4wDAYDVR0TBAUwAwEBADANBgkqhkiG9w0BAQsF
         
     | 
| 
      
 14 
     | 
    
         
            +
            AAOCAQEAMzoxZJqhu8zyKI20Hz5SAqva+jcHbZbR9AXlt4LWQEttsXy4S52XLZBB
         
     | 
| 
      
 15 
     | 
    
         
            +
            4Es/Fah4lyou9R1xdUfF6iGBV6HgDMIuh+QYfqA/jJ4HXNMKLtDXakS8xYp2A0Wn
         
     | 
| 
      
 16 
     | 
    
         
            +
            g0EnjGx44DNweBkKGB9asldgwOM7MYMoQvS3Nkyu3oFqpfLpuWpWB/3Vw3PMGEdx
         
     | 
| 
      
 17 
     | 
    
         
            +
            r/c8Ev5XoVtl2+dXszsEp2jwUOFo8+DZzFdBZdA2F7RmcP+zxbAHIw/jHf/ptDGg
         
     | 
| 
      
 18 
     | 
    
         
            +
            NtzHmLhxiLblGlJHw/4a0HhXa453jzLsD1+hQpqBRUNbXBp1qpjqEr5SF1iVNGpZ
         
     | 
| 
      
 19 
     | 
    
         
            +
            peWFawp53MkIBXRls66ViJsl//fPBg==
         
     | 
| 
      
 20 
     | 
    
         
            +
            -----END CERTIFICATE-----
         
     | 
| 
      
 21 
     | 
    
         
            +
            -----BEGIN CERTIFICATE-----
         
     | 
| 
      
 22 
     | 
    
         
            +
            MIIDPTCCAiWgAwIBAgIKRbRr9ZfmrY72TjANBgkqhkiG9w0BAQsFADBTMQswCQYD
         
     | 
| 
      
 23 
     | 
    
         
            +
            VQQGEwJVUzELMAkGA1UECAwCQ0ExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxHzAd
         
     | 
| 
      
 24 
     | 
    
         
            +
            BgNVBAMMFmNhLnRlc3RpbmcuZmx1ZW50ZC5vcmcwIBcNNzAwMTAxMDAwMDAwWhgP
         
     | 
| 
      
 25 
     | 
    
         
            +
            MjExODEwMjcwODA2NTdaMFQxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEWMBQG
         
     | 
| 
      
 26 
     | 
    
         
            +
            A1UEBwwNTW91bnRhaW4gVmlldzEgMB4GA1UEAwwXY2EyLnRlc3RpbmcuZmx1ZW50
         
     | 
| 
      
 27 
     | 
    
         
            +
            ZC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6gnGxD4RQuAA1
         
     | 
| 
      
 28 
     | 
    
         
            +
            fQNMl9mctiIvcJ0Dz5f3JtCJlKKqBDKJ17py7tjFZ2MZ5vytIl1DUU2oxHew8F/u
         
     | 
| 
      
 29 
     | 
    
         
            +
            U8s+8ljmL3seiXx2kMCOxCvSW3JYUQrzbTHKszna7Ffy94SzpRDh/4/2RGatnSqi
         
     | 
| 
      
 30 
     | 
    
         
            +
            n4fRpalrchhH6Ds6v486o7YcwEKPR2dlD+Ltd/V3lMAOAmoRoe2aQlLudOUQjHJU
         
     | 
| 
      
 31 
     | 
    
         
            +
            YWGim8XS2dNAEy4WR5DvjYEA+CwKEX7f9p0Dihs8FKBjB2TvBwUkdfILLEnwA1rs
         
     | 
| 
      
 32 
     | 
    
         
            +
            r0coUt3kwYt9TYNYv6/SZYvFtaYjM3BmLVHI3mtEchaA+Tij4V4gRZ573Ai1+Fb8
         
     | 
| 
      
 33 
     | 
    
         
            +
            rxn+oTsVAgMBAAGjEDAOMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB
         
     | 
| 
      
 34 
     | 
    
         
            +
            AHID7VD2PS7svmCXRg4qe7MkhA0veIadZRE6WZgJo3Z64p9jUWu/Y3ZrlZuDg0qI
         
     | 
| 
      
 35 
     | 
    
         
            +
            yV65UgWrgUOiGN6RZmI5A850DH3ryjvQElPHWjRavm0GtrOxFhHYpX8N7DRFW7t0
         
     | 
| 
      
 36 
     | 
    
         
            +
            7mld7YvbKRj0BrovU3avPC1P9w8FpegMKh48HsoRCO3NhHvYwtAf2B767UuAaqnI
         
     | 
| 
      
 37 
     | 
    
         
            +
            DW9rMPRTZv+Pv+G+kJN+updOs6HiHFxeS8Bwb8GlADcwWNGMqyJJyKmaefYVzDKt
         
     | 
| 
      
 38 
     | 
    
         
            +
            xfBiKiwev6Hm8RVTk1H3rKVZox/ZkDiZfZhmBJqO4mdDR4LLFIRIPqjUPxENsKFJ
         
     | 
| 
      
 39 
     | 
    
         
            +
            MyrDcwH+0Aq9ZSiRaVyfCkQ=
         
     | 
| 
      
 40 
     | 
    
         
            +
            -----END CERTIFICATE-----
         
     | 
| 
         
            File without changes
         
     | 
| 
         @@ -0,0 +1,125 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'fluent/plugin_helper/cert_option'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'fileutils'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module CertUtil
         
     | 
| 
      
 5 
     | 
    
         
            +
              extend Fluent::PluginHelper::CertOption
         
     | 
| 
      
 6 
     | 
    
         
            +
            end
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            WITHOUT_CA_DIR = './without_ca'.freeze
         
     | 
| 
      
 9 
     | 
    
         
            +
            WITH_CA_DIR = './with_ca'.freeze
         
     | 
| 
      
 10 
     | 
    
         
            +
            WITH_CERT_CHAIN_DIR = './cert_chains'.freeze
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            CA_OPTION = {
         
     | 
| 
      
 13 
     | 
    
         
            +
              private_key_length: 2048,
         
     | 
| 
      
 14 
     | 
    
         
            +
              country: 'US',
         
     | 
| 
      
 15 
     | 
    
         
            +
              state: 'CA',
         
     | 
| 
      
 16 
     | 
    
         
            +
              locality: 'Mountain View',
         
     | 
| 
      
 17 
     | 
    
         
            +
              common_name: 'ca.testing.fluentd.org',
         
     | 
| 
      
 18 
     | 
    
         
            +
              expiration: 30 * 86400 * 12 * 100,
         
     | 
| 
      
 19 
     | 
    
         
            +
              digest: :sha256,
         
     | 
| 
      
 20 
     | 
    
         
            +
            }
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            SERVER_OPTION = {
         
     | 
| 
      
 23 
     | 
    
         
            +
              private_key_length: 2048,
         
     | 
| 
      
 24 
     | 
    
         
            +
              country: 'US',
         
     | 
| 
      
 25 
     | 
    
         
            +
              state: 'CA',
         
     | 
| 
      
 26 
     | 
    
         
            +
              locality: 'Mountain View',
         
     | 
| 
      
 27 
     | 
    
         
            +
              common_name: 'server.testing.fluentd.org',
         
     | 
| 
      
 28 
     | 
    
         
            +
              expiration: 30 * 86400 * 12 * 100,
         
     | 
| 
      
 29 
     | 
    
         
            +
              digest: :sha256,
         
     | 
| 
      
 30 
     | 
    
         
            +
            }
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            def write_cert_and_key(cert_path, cert, key_path, key, passphrase)
         
     | 
| 
      
 33 
     | 
    
         
            +
              File.open(cert_path, 'w') { |f| f.write(cert.to_pem) }
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
              # Write the secret key (raw or encrypted by AES256) in PEM format
         
     | 
| 
      
 36 
     | 
    
         
            +
              key_str = passphrase ? key.export(OpenSSL::Cipher.new('AES-256-CBC'), passphrase) : key.export
         
     | 
| 
      
 37 
     | 
    
         
            +
              File.open(key_path, 'w') { |f| f.write(key_str) }
         
     | 
| 
      
 38 
     | 
    
         
            +
              File.chmod(0o600, cert_path, key_path)
         
     | 
| 
      
 39 
     | 
    
         
            +
            end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            def create_server_pair_signed_by_self(cert_path, private_key_path, passphrase)
         
     | 
| 
      
 42 
     | 
    
         
            +
              cert, key, _ = CertUtil.cert_option_generate_server_pair_self_signed(SERVER_OPTION)
         
     | 
| 
      
 43 
     | 
    
         
            +
              write_cert_and_key(cert_path, cert, private_key_path, key, passphrase)
         
     | 
| 
      
 44 
     | 
    
         
            +
              cert
         
     | 
| 
      
 45 
     | 
    
         
            +
            end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            def create_ca_pair_signed_by_self(cert_path, private_key_path, passphrase)
         
     | 
| 
      
 48 
     | 
    
         
            +
              cert, key, _ = CertUtil.cert_option_generate_ca_pair_self_signed(CA_OPTION)
         
     | 
| 
      
 49 
     | 
    
         
            +
              write_cert_and_key(cert_path, cert, private_key_path, key, passphrase)
         
     | 
| 
      
 50 
     | 
    
         
            +
              cert
         
     | 
| 
      
 51 
     | 
    
         
            +
            end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
            def create_server_pair_signed_by_ca(ca_cert_path, ca_key_path, ca_key_passphrase, cert_path, private_key_path, passphrase)
         
     | 
| 
      
 54 
     | 
    
         
            +
              cert, key, _ = CertUtil.cert_option_generate_server_pair_by_ca(ca_cert_path, ca_key_path, ca_key_passphrase, SERVER_OPTION)
         
     | 
| 
      
 55 
     | 
    
         
            +
              write_cert_and_key(cert_path, cert, private_key_path, key, passphrase)
         
     | 
| 
      
 56 
     | 
    
         
            +
              cert
         
     | 
| 
      
 57 
     | 
    
         
            +
            end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
            def create_without_ca
         
     | 
| 
      
 60 
     | 
    
         
            +
              FileUtils.mkdir_p(WITHOUT_CA_DIR)
         
     | 
| 
      
 61 
     | 
    
         
            +
              cert_path = File.join(WITHOUT_CA_DIR, 'cert.pem')
         
     | 
| 
      
 62 
     | 
    
         
            +
              cert_key_path = File.join(WITHOUT_CA_DIR, 'cert-key.pem')
         
     | 
| 
      
 63 
     | 
    
         
            +
              cert_pass_path = File.join(WITHOUT_CA_DIR, 'cert-pass.pem')
         
     | 
| 
      
 64 
     | 
    
         
            +
              cert_key_pass_path = File.join(WITHOUT_CA_DIR, 'cert-key-pass.pem')
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
              create_server_pair_signed_by_self(cert_path, cert_key_path, nil)
         
     | 
| 
      
 67 
     | 
    
         
            +
              create_server_pair_signed_by_self(cert_pass_path, cert_key_pass_path, 'apple') # with passphrase
         
     | 
| 
      
 68 
     | 
    
         
            +
            end
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
            def create_with_ca
         
     | 
| 
      
 71 
     | 
    
         
            +
              FileUtils.mkdir_p(WITH_CA_DIR)
         
     | 
| 
      
 72 
     | 
    
         
            +
              cert_path = File.join(WITH_CA_DIR, 'cert.pem')
         
     | 
| 
      
 73 
     | 
    
         
            +
              cert_key_path = File.join(WITH_CA_DIR, 'cert-key.pem')
         
     | 
| 
      
 74 
     | 
    
         
            +
              ca_cert_path = File.join(WITH_CA_DIR, 'ca-cert.pem')
         
     | 
| 
      
 75 
     | 
    
         
            +
              ca_key_path = File.join(WITH_CA_DIR, 'ca-cert-key.pem')
         
     | 
| 
      
 76 
     | 
    
         
            +
              create_ca_pair_signed_by_self(ca_cert_path, ca_key_path, nil)
         
     | 
| 
      
 77 
     | 
    
         
            +
              create_server_pair_signed_by_ca(ca_cert_path, ca_key_path, nil, cert_path, cert_key_path, nil)
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
              cert_pass_path = File.join(WITH_CA_DIR, 'cert-pass.pem')
         
     | 
| 
      
 80 
     | 
    
         
            +
              cert_key_pass_path = File.join(WITH_CA_DIR, 'cert-key-pass.pem')
         
     | 
| 
      
 81 
     | 
    
         
            +
              ca_cert_pass_path = File.join(WITH_CA_DIR, 'ca-cert-pass.pem')
         
     | 
| 
      
 82 
     | 
    
         
            +
              ca_key_pass_path = File.join(WITH_CA_DIR, 'ca-cert-key-pass.pem')
         
     | 
| 
      
 83 
     | 
    
         
            +
              create_ca_pair_signed_by_self(ca_cert_pass_path, ca_key_pass_path, 'orange') # with passphrase
         
     | 
| 
      
 84 
     | 
    
         
            +
              create_server_pair_signed_by_ca(ca_cert_pass_path, ca_key_pass_path, 'orange', cert_pass_path, cert_key_pass_path, 'apple')
         
     | 
| 
      
 85 
     | 
    
         
            +
            end
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
            def create_cert_pair_chained_with_root_ca(ca_cert_path, ca_key_path, ca_key_passphrase, cert_path, private_key_path, passphrase)
         
     | 
| 
      
 88 
     | 
    
         
            +
              root_cert, root_key, _ = CertUtil.cert_option_generate_ca_pair_self_signed(CA_OPTION)
         
     | 
| 
      
 89 
     | 
    
         
            +
              write_cert_and_key(ca_cert_path, root_cert, ca_key_path, root_key, ca_key_passphrase)
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
              intermediate_ca_options = CA_OPTION.dup
         
     | 
| 
      
 92 
     | 
    
         
            +
              intermediate_ca_options[:common_name] = 'ca2.testing.fluentd.org'
         
     | 
| 
      
 93 
     | 
    
         
            +
              chain_cert, chain_key = CertUtil.cert_option_generate_pair(intermediate_ca_options, root_cert.subject)
         
     | 
| 
      
 94 
     | 
    
         
            +
              chain_cert.add_extension(OpenSSL::X509::Extension.new('basicConstraints', OpenSSL::ASN1.Sequence([OpenSSL::ASN1::Boolean(true)])))
         
     | 
| 
      
 95 
     | 
    
         
            +
              chain_cert.sign(root_key, 'sha256')
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
              cert, server_key, _ = CertUtil.cert_option_generate_pair(SERVER_OPTION, chain_cert.subject)
         
     | 
| 
      
 98 
     | 
    
         
            +
              cert.add_extension OpenSSL::X509::Extension.new('basicConstraints', OpenSSL::ASN1.Sequence([OpenSSL::ASN1::Boolean(false)]))
         
     | 
| 
      
 99 
     | 
    
         
            +
              cert.sign(chain_key, 'sha256')
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
      
 101 
     | 
    
         
            +
              # write chained cert
         
     | 
| 
      
 102 
     | 
    
         
            +
              File.open(cert_path, 'w') do |f|
         
     | 
| 
      
 103 
     | 
    
         
            +
                f.write(cert.to_pem)
         
     | 
| 
      
 104 
     | 
    
         
            +
                f.write(chain_cert.to_pem)
         
     | 
| 
      
 105 
     | 
    
         
            +
              end
         
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
              key_str = passphrase ? server_key.export(OpenSSL::Cipher.new("AES-256-CBC"), passphrase) : server_key.export
         
     | 
| 
      
 108 
     | 
    
         
            +
              File.open(private_key_path, "w") { |f| f.write(key_str) }
         
     | 
| 
      
 109 
     | 
    
         
            +
              File.chmod(0600, cert_path, private_key_path)
         
     | 
| 
      
 110 
     | 
    
         
            +
            end
         
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
            def create_cert_chain
         
     | 
| 
      
 113 
     | 
    
         
            +
              FileUtils.mkdir_p(WITH_CERT_CHAIN_DIR)
         
     | 
| 
      
 114 
     | 
    
         
            +
              ca_cert_path = File.join(WITH_CERT_CHAIN_DIR, 'ca-cert.pem')
         
     | 
| 
      
 115 
     | 
    
         
            +
              ca_key_path = File.join(WITH_CERT_CHAIN_DIR, 'ca-cert-key.pem')
         
     | 
| 
      
 116 
     | 
    
         
            +
             
     | 
| 
      
 117 
     | 
    
         
            +
              cert_path = File.join(WITH_CERT_CHAIN_DIR, 'cert.pem')
         
     | 
| 
      
 118 
     | 
    
         
            +
              private_key_path = File.join(WITH_CERT_CHAIN_DIR, 'cert-key.pem')
         
     | 
| 
      
 119 
     | 
    
         
            +
             
     | 
| 
      
 120 
     | 
    
         
            +
              create_server_pair_chained_with_root_ca(ca_cert_path, ca_key_path, nil, cert_path, private_key_path, nil)
         
     | 
| 
      
 121 
     | 
    
         
            +
            end
         
     | 
| 
      
 122 
     | 
    
         
            +
             
     | 
| 
      
 123 
     | 
    
         
            +
            create_without_ca
         
     | 
| 
      
 124 
     | 
    
         
            +
            create_with_ca
         
     | 
| 
      
 125 
     | 
    
         
            +
            create_cert_chain
         
     | 
| 
         @@ -0,0 +1,30 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN RSA PRIVATE KEY-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            Proc-Type: 4,ENCRYPTED
         
     | 
| 
      
 3 
     | 
    
         
            +
            DEK-Info: AES-256-CBC,A73EC2C28AEE020735AE48A88ED5D3C2
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Tpi5VwaaGpF7rrxjCtj+0Y3jZviTIBZSBYG43BPzRM+mhQ5AXBuLsttJkYURssoU
         
     | 
| 
      
 6 
     | 
    
         
            +
            yn+1zoilnehx+RUWGEBFyPeyDHUaAeUEGf8d6/FHv3D/9hlrzil/pkvyKN9KXzG9
         
     | 
| 
      
 7 
     | 
    
         
            +
            HYLJobLG1JPR0XgINMUP9W77n9bitR2hxm0ib3TAuTmEn7Ms3LoLmVIGYE91OExC
         
     | 
| 
      
 8 
     | 
    
         
            +
            KXcIpt+0Ue6qEzKv+Q4/L+7a/i3pNUUvMc15c6cVGdA+wiCpBCkwKvUGapjeoYrB
         
     | 
| 
      
 9 
     | 
    
         
            +
            +CVdKGte9Ug85fE68tIuSD7UG/1y1MXC0EwPAgO+U4S280aFiBfWgzfzEd5T72kN
         
     | 
| 
      
 10 
     | 
    
         
            +
            1O2vad/wCAN8Ruk2XXi7LlM1jFGY3R/CMuaiyVoFQZj5AY32BMxRIilsL8dnl7jG
         
     | 
| 
      
 11 
     | 
    
         
            +
            Nmkpa0UOi0xhNpnXQ81BeN/nHFZY9xWX/uJwClw71IBJDk3+KKXEk7Ym0AhfAuao
         
     | 
| 
      
 12 
     | 
    
         
            +
            mX6C7KDyAjG6O5VoQ0YwoROzC2sl6ui1zRkey53552025p4OvaDGbuMkPApp3b75
         
     | 
| 
      
 13 
     | 
    
         
            +
            sVsA03evcFWQKF7roPN28+obW+SAgBNsg9EfR8Ebbmp4bPpZO9j1bitRxCtJEBLD
         
     | 
| 
      
 14 
     | 
    
         
            +
            9fHKfGRscRetWNBInkijM8+/vWMAf0U2gKwAJLXzelfIyqp2Ay03GgAEubcSWRjS
         
     | 
| 
      
 15 
     | 
    
         
            +
            iU2AItmBsPHOaZ7dSh9MkU/H4DxqLZFxrj48sbDbm5i0zSgAi/9qd3LYXvL6oYZ9
         
     | 
| 
      
 16 
     | 
    
         
            +
            3ZHW2+hL6htemXf3DmMeNSnhU5W9Qqoths3CTJcIWeMuaKlkdiw4Gr3Qu0FCRcDE
         
     | 
| 
      
 17 
     | 
    
         
            +
            crjpeR8ND5Bm2N/EkZKEMm/UDcobMW38F54Do/KVkyctelpW1XuYYcVqt4UhWatT
         
     | 
| 
      
 18 
     | 
    
         
            +
            En64RbiSqG7wHa8jt4jHX10Zjc1LZAevXk5sVGJRN+y1IL6HFe4CcglLAOigvvPO
         
     | 
| 
      
 19 
     | 
    
         
            +
            33D0ft1faUgZlMQPAsXwnQyRpmeUrkyK3aec/6ML1PeJhDHl9OfQpkl2+8SL125o
         
     | 
| 
      
 20 
     | 
    
         
            +
            rVIMzlRefAG6SqywxqGk7DiSzp4vqJ2dkV9J9NI8mJYpPGpbuICtuOOlaNdiO4na
         
     | 
| 
      
 21 
     | 
    
         
            +
            eESgCxkOk0yh74n2ioweXeT7Z+mnI8KhMMBqFmM4zyH4s3W/DbojQxZ4+W9s798d
         
     | 
| 
      
 22 
     | 
    
         
            +
            onoWoj6Knj9IgPlMOJGR7jtsPeTGNxWtvVMWD6uIy4Nml4hvSXn12MU3PJe0Iw+G
         
     | 
| 
      
 23 
     | 
    
         
            +
            mAlaQySxXBJiaRUGE52HLPF39Td8lB7RT11alQRRFjnulh4ayQlXDPiuj0s2sbop
         
     | 
| 
      
 24 
     | 
    
         
            +
            yFXCHYgPm16RCLk8qB/Ai2L0H6+A+KR7ewMPSjl6/xQQXf5UwjhU0RXoVpNjLnPA
         
     | 
| 
      
 25 
     | 
    
         
            +
            rhep+L+YUuQlf5nJ/6jBuSxSO3pG5RkrmoTpq4z0QvlL7ooK4p8NfZZV0Bs+ud8D
         
     | 
| 
      
 26 
     | 
    
         
            +
            6OWCda18t1C5k+tr9rR5rQbLsTy9X0B4udvO0m1b7WWVRAfOX8MK7p+VFb0WmKmQ
         
     | 
| 
      
 27 
     | 
    
         
            +
            DdzZ9Kmsi/j/VSlzqaqPq5XUgtMhnlLtf/9HK/QkDhIMITiyu9oGRASbOmRscVFH
         
     | 
| 
      
 28 
     | 
    
         
            +
            QGhtXY1XBOHUtOH4d6Dy8/AZSW1u2rHsWJDnyYdFzyOPlrdBG4qOtTG9GitxtA64
         
     | 
| 
      
 29 
     | 
    
         
            +
            BGDopav+kIdh0NsSG+6I9vxAP9MfGVtaXzVrdvBd3yXsZlRMWemj9SINq4GcMO3C
         
     | 
| 
      
 30 
     | 
    
         
            +
            -----END RSA PRIVATE KEY-----
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN RSA PRIVATE KEY-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIEpAIBAAKCAQEAvyCuBhvNR2ZUukny+Qly3e0CTlQSee1nEULxxmg9N6aZc8Sr
         
     | 
| 
      
 3 
     | 
    
         
            +
            BW2RhCObexPYPUCVgyB0MJ2AYXXiXHy8xUXg6Cya6RqzPPLsvXcuoV2UgaKKG6HZ
         
     | 
| 
      
 4 
     | 
    
         
            +
            UBgzE9o9k2upbDPsQzzz2EEQxfkjHqmZNzkw7BbO+g8OF10owo+fFxlVxLh02GQf
         
     | 
| 
      
 5 
     | 
    
         
            +
            gkYns0rRb8YJcrEH/XdZrIJZkimQ1oX1RhpOvD5M63s8Yrg/WwX3e52W6IYmAzyi
         
     | 
| 
      
 6 
     | 
    
         
            +
            l6HKSZ1fKzQAYNj63CkUt5gXCxQ5vN9jYq7dPdVXr+YLO4QlC9Yr+R98iWYgcahW
         
     | 
| 
      
 7 
     | 
    
         
            +
            AISPWHC/9Nd2wQTLWubt9o8g8yaHqyIMcCCobwIDAQABAoIBAQCA7xfWsRyrZQIV
         
     | 
| 
      
 8 
     | 
    
         
            +
            ZduOWuxtf/zFQHvyWs/j2ihmM13Q1AfDDFJe6Ap5fNffkISY1Z/HBLa9MRMxLChX
         
     | 
| 
      
 9 
     | 
    
         
            +
            QiLKZhiSJ70dMdDmde505hjD7PBI/5BxkZ6bJKgYZWqSr9dsUh65QT4yjbo2A5rI
         
     | 
| 
      
 10 
     | 
    
         
            +
            jZr5oRA6xCw+jrdv1X2wutiU6Zdti+N9ouq/7ne6EY8pHh5VQ+bXtMbVrm/ejWV2
         
     | 
| 
      
 11 
     | 
    
         
            +
            PrsQwLqy1QyuNo9kUN126rlQIOy0s7KTBory3UGCSiZLeRlQPipIAuhQU1o+3B3b
         
     | 
| 
      
 12 
     | 
    
         
            +
            91ULwkzRorzqDoWsDOMeK/K76sQ+2HfAQYqjOIo3LcFA+xDxarIludVX4Aot3xkA
         
     | 
| 
      
 13 
     | 
    
         
            +
            BbieE0IZAoGBAN1eDbwLGG3S7NN+qXuMnNRSN2F9SWuHBuxbNfE+bg2ydah2R6um
         
     | 
| 
      
 14 
     | 
    
         
            +
            LL/jgzQhMiLMnkRqhgkvTDgWVlH0nH7JK6pt+vdrncygTrNmlLsaa62bm5zEQtzA
         
     | 
| 
      
 15 
     | 
    
         
            +
            s6IEncKkK5T7JCeICQ1W6L3S971ScHVfb6D4B8IAGzlmsATCvRsJf6UFAoGBAN0H
         
     | 
| 
      
 16 
     | 
    
         
            +
            f+XU8Qhuj4oJeF7KoA0hVgQoCO+LFCqYddwu7t1HGBhzKue7fs/45AX6gwEOPm3Q
         
     | 
| 
      
 17 
     | 
    
         
            +
            IfWfktlQpIjSyrBdj8ewUTDd9jX/tGjwTFSpkX+BzT/Vtl9gYMXymylmkfD8F4ll
         
     | 
| 
      
 18 
     | 
    
         
            +
            h5KdAHzxQuzhnsju9S3Py5x+zCN08ks1h7ACzBHjAoGBALBqlV2IJibYEv8WEXGy
         
     | 
| 
      
 19 
     | 
    
         
            +
            BQY8o4AhPdLg4EabBilFTKXD1Hq2ELYeD8m5QkXYMsGC+pqhnkJRnFeSjaZw4As2
         
     | 
| 
      
 20 
     | 
    
         
            +
            vYLsdTabYD3EgBP/K4bVLn1D5scPrg2J0V7MeQG2njjz0MNkaXplCcTGDcOmoJMZ
         
     | 
| 
      
 21 
     | 
    
         
            +
            xLevE1eriAa97IdOvzB96GkVAoGAe+3ajnlI9FtZbCJHNY8TEomgexAfgoBOvFtj
         
     | 
| 
      
 22 
     | 
    
         
            +
            qiM+lx9nqT3ZzrjYL6/z2k5N6eecpWHPyLLCWcrXlkfqkdzD40k/HNE3XauT8krZ
         
     | 
| 
      
 23 
     | 
    
         
            +
            4ZZ6GC4lcSdY7D1TxWl0ClCSf7Y5VDZzP4d8YJG93qfaqfshyZ/7IDIQL8lAmV7Y
         
     | 
| 
      
 24 
     | 
    
         
            +
            R54p4dUCgYBeJzyD7SETML67K0VvJn9jLrcE+hZTqaXIMDMVWRp6ekNuFDUaT1/A
         
     | 
| 
      
 25 
     | 
    
         
            +
            GYV9oPbo4QSg+FydWVuOwYvtf8YTfEt/FFNg2rmSXljHghRS6TbIAkS1kh3Xz6Vl
         
     | 
| 
      
 26 
     | 
    
         
            +
            YOD0ekf1FqxCO+h3PuaPHpC7uOh6HoB2ppH7jCvb4z4iWATujnYiEg==
         
     | 
| 
      
 27 
     | 
    
         
            +
            -----END RSA PRIVATE KEY-----
         
     | 
| 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN CERTIFICATE-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIDPDCCAiSgAwIBAgIKDYpkw43U3AatXzANBgkqhkiG9w0BAQsFADBTMQswCQYD
         
     | 
| 
      
 3 
     | 
    
         
            +
            VQQGEwJVUzELMAkGA1UECAwCQ0ExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxHzAd
         
     | 
| 
      
 4 
     | 
    
         
            +
            BgNVBAMMFmNhLnRlc3RpbmcuZmx1ZW50ZC5vcmcwIBcNNzAwMTAxMDAwMDAwWhgP
         
     | 
| 
      
 5 
     | 
    
         
            +
            MjExODA5MTkwNjA0NTZaMFMxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEWMBQG
         
     | 
| 
      
 6 
     | 
    
         
            +
            A1UEBwwNTW91bnRhaW4gVmlldzEfMB0GA1UEAwwWY2EudGVzdGluZy5mbHVlbnRk
         
     | 
| 
      
 7 
     | 
    
         
            +
            Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKs8jpSiSUhphToD
         
     | 
| 
      
 8 
     | 
    
         
            +
            YV+8I27mVBr48Wo+R876RRVLAkdKb934xSYRvsy8QD9k+ZaA2EspchQ7ky3sdztu
         
     | 
| 
      
 9 
     | 
    
         
            +
            v4x5WqOHE7VE/HkbRcRfBKU9ujFou9l8ruSyLl8jTWoq1BPyVii7+ojcjNsodNF9
         
     | 
| 
      
 10 
     | 
    
         
            +
            p0tsJOsnLgSA+yt3dI56V+PXsQkIwil5QGWDMCDQ80a1ncIA65uLjLwnWP6+XvgQ
         
     | 
| 
      
 11 
     | 
    
         
            +
            jA/D2SrlORc18qGYC4J4ZA08VPdPtnzThjSV2UxkgBz+rT3FB97b/IzwImpG3GKI
         
     | 
| 
      
 12 
     | 
    
         
            +
            YeI1wfZAVEp3sA+kC9ufGKyGTHbMltB3c1E6z93gWpRSEk7TT802ixcYvl9V3L/A
         
     | 
| 
      
 13 
     | 
    
         
            +
            SbOseMkCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEA
         
     | 
| 
      
 14 
     | 
    
         
            +
            AGQkwrLOnOyf4EZjfz1Sn6IdiU7zU0jDnl1+pU5xtU4qZRa7MvMsfUPRFk3sLKls
         
     | 
| 
      
 15 
     | 
    
         
            +
            keVu4DOWjBaC2ivgUt+j8odRqii2UdyltXAAoO2o1MMKoUKRZHYl5RPorzjuKwiP
         
     | 
| 
      
 16 
     | 
    
         
            +
            q6uxSkt/3c5Z6jAeS5JtDmX4EQgl9IHiV1zmWxV/rYJQ0kKBlsBhFX0CMJpNKJi5
         
     | 
| 
      
 17 
     | 
    
         
            +
            bxYH9kg7jMAL8Q/10tzWFT45O91UJlxTxEJy2YDiAMwiiOwA51h8ro23I4ag6XGE
         
     | 
| 
      
 18 
     | 
    
         
            +
            NYEd0C0GclxLgP9YCddHYXQe1ZwfeZIBNPboQurNhWes6igrhuPlJTDC9p8rF65b
         
     | 
| 
      
 19 
     | 
    
         
            +
            zxWqJGLs6eM+ctNibLCQfg==
         
     | 
| 
      
 20 
     | 
    
         
            +
            -----END CERTIFICATE-----
         
     | 
| 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN CERTIFICATE-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIDPDCCAiSgAwIBAgIKRRRc9wNmgVG33zANBgkqhkiG9w0BAQsFADBTMQswCQYD
         
     | 
| 
      
 3 
     | 
    
         
            +
            VQQGEwJVUzELMAkGA1UECAwCQ0ExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxHzAd
         
     | 
| 
      
 4 
     | 
    
         
            +
            BgNVBAMMFmNhLnRlc3RpbmcuZmx1ZW50ZC5vcmcwIBcNNzAwMTAxMDAwMDAwWhgP
         
     | 
| 
      
 5 
     | 
    
         
            +
            MjExODA5MTkwNjA0NTZaMFMxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEWMBQG
         
     | 
| 
      
 6 
     | 
    
         
            +
            A1UEBwwNTW91bnRhaW4gVmlldzEfMB0GA1UEAwwWY2EudGVzdGluZy5mbHVlbnRk
         
     | 
| 
      
 7 
     | 
    
         
            +
            Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL8grgYbzUdmVLpJ
         
     | 
| 
      
 8 
     | 
    
         
            +
            8vkJct3tAk5UEnntZxFC8cZoPTemmXPEqwVtkYQjm3sT2D1AlYMgdDCdgGF14lx8
         
     | 
| 
      
 9 
     | 
    
         
            +
            vMVF4Ogsmukaszzy7L13LqFdlIGiihuh2VAYMxPaPZNrqWwz7EM889hBEMX5Ix6p
         
     | 
| 
      
 10 
     | 
    
         
            +
            mTc5MOwWzvoPDhddKMKPnxcZVcS4dNhkH4JGJ7NK0W/GCXKxB/13WayCWZIpkNaF
         
     | 
| 
      
 11 
     | 
    
         
            +
            9UYaTrw+TOt7PGK4P1sF93udluiGJgM8opehykmdXys0AGDY+twpFLeYFwsUObzf
         
     | 
| 
      
 12 
     | 
    
         
            +
            Y2Ku3T3VV6/mCzuEJQvWK/kffIlmIHGoVgCEj1hwv/TXdsEEy1rm7faPIPMmh6si
         
     | 
| 
      
 13 
     | 
    
         
            +
            DHAgqG8CAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEA
         
     | 
| 
      
 14 
     | 
    
         
            +
            IDGochw4cgYtK2RKgHQhsZ2aXUBo4qtM3L4HGFluagkDns4oHp0i3lwterYDYmf6
         
     | 
| 
      
 15 
     | 
    
         
            +
            nqVea3SJtk5XmVuGweOsilwIEmjUNk1kLwnjKyZYR1/vcfhriefGXmAzppRFeYh2
         
     | 
| 
      
 16 
     | 
    
         
            +
            K1OrmFZXvs8tRtMSt9YBbBeGbDdqpc9O4VkZb+hrysaaZiCE58cMGbxQEkvbyoGx
         
     | 
| 
      
 17 
     | 
    
         
            +
            EhRhIA+NbnWQ2RRoHXk76iMe2kbe3H5Bj06wJqYI2jH8yxEtDzMA96iVJuuz8l2p
         
     | 
| 
      
 18 
     | 
    
         
            +
            1Dv1f+4aFqUHOL0GgFuzwmmSQ6DS6/7WFglL3jeL9TqCSTiyY3PQtrzBI2hCDQpn
         
     | 
| 
      
 19 
     | 
    
         
            +
            YN6ELSQUASXSVmEQ4V5I3Q==
         
     | 
| 
      
 20 
     | 
    
         
            +
            -----END CERTIFICATE-----
         
     | 
| 
         @@ -0,0 +1,30 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN RSA PRIVATE KEY-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            Proc-Type: 4,ENCRYPTED
         
     | 
| 
      
 3 
     | 
    
         
            +
            DEK-Info: AES-256-CBC,F639769C79C6B97B06C4FD86B1ABC8B0
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            ++PSSn+v3H7i0DEZbM0Ypa718aw5CfkOleFFPn4FQNSZJckuIWblPQ6RLPdtkmlh
         
     | 
| 
      
 6 
     | 
    
         
            +
            Kil/opC4y9dLoukze8CH+cGsqfPilT2ePs23t2ejdYu6N+3/aLbd0BIWCp2UtBqh
         
     | 
| 
      
 7 
     | 
    
         
            +
            OaHu9cbyUCGV95xx404zljc+cgcnzgBPtkhoa3zRdYb1NOOJK9l7WItCugktGfEJ
         
     | 
| 
      
 8 
     | 
    
         
            +
            MymOsRl2SspF9nni0pwz+VFUIRkCVii8u4sY5aGyasNzefIIuk2ItLIgmO+t9sz+
         
     | 
| 
      
 9 
     | 
    
         
            +
            o0cfCxQndwrhEWKRTyOaP4tc6vHIToAlikjvf49K5YztNf+aMWQ5+FvwLQk5SxBx
         
     | 
| 
      
 10 
     | 
    
         
            +
            8Mba3UHZmFFG5R2pH/EiZKul2eXXFuEfamX7Sa2QoLQHlziev7QHQHNeOrpTIUYg
         
     | 
| 
      
 11 
     | 
    
         
            +
            gV0vSgpMDqU2mAYFyLWxvmiyJLVozVlJuZWisT+rcgRkSnv4M6ybJCxvWBEkQDvF
         
     | 
| 
      
 12 
     | 
    
         
            +
            AYh5OqZ8P/POxhDDWFpJCfzIdtUGT6ED/TyKtqbqFocEQYKUlp4EQjDmt0asbcqN
         
     | 
| 
      
 13 
     | 
    
         
            +
            wcwliPeU5fcgiwZyxK6bIr+AV9emF5acDT7mKeAYZI83OnRzkBg+Pfgw0X0HCMJo
         
     | 
| 
      
 14 
     | 
    
         
            +
            ZzQy0oYFhxVWe1yEGvyy3XbA2+N1TowzgCk5aMA0RmB30hyeBjZx7wFZFOx9ZzDj
         
     | 
| 
      
 15 
     | 
    
         
            +
            UdC32L7Y1Tl+preRloQw5aYFbfKII88GiG8OqY9yusM3QHZUptjEXMv+nBfCsGg2
         
     | 
| 
      
 16 
     | 
    
         
            +
            A1Ki3dbwYer9ML/E8ndFpLjEW9fAoBUW4Qa7tKTF77wkNN58pdgs+tGddAT2wuV5
         
     | 
| 
      
 17 
     | 
    
         
            +
            F1YRVRENDXwaEoQirU7yn2cJtI1cX/Mx7pbkh7hYSTSekSZlHdRH/OFnitZ34BqA
         
     | 
| 
      
 18 
     | 
    
         
            +
            yC2Du3ea5djMdCrtKkmpeR8GhHkihSfT8ANdZwA2dw2uSMbqT60Dr1zK78h/P4c7
         
     | 
| 
      
 19 
     | 
    
         
            +
            scITpS1FB+tDBegZ2T6iFBYpReEXDpvpwVl6UHj7ds51se+752SHaW8Y54AEpkdH
         
     | 
| 
      
 20 
     | 
    
         
            +
            /EvAEKtBc0zvOWT7BqUcgNfCaDD/4B11twc7weiQlK5i829U9VL+8DaLuGtSOuyM
         
     | 
| 
      
 21 
     | 
    
         
            +
            A4+wLym9aeQIAMcdetaO3q6Ks66YQRHvuL205cYDik59SPQt6QjN3/fcc9enqsXg
         
     | 
| 
      
 22 
     | 
    
         
            +
            pbQYduyDGW4po6dBaDsc20Jba61PNtKpU3qL8NhYysPPWlmw4CgZHm6m43NUkYxw
         
     | 
| 
      
 23 
     | 
    
         
            +
            oWa4CRJuPR6c8XDX5GqPLDkd/dxmTHDIT64u/p2a5JNkT6SCMXHVQhI0DKcR+F7n
         
     | 
| 
      
 24 
     | 
    
         
            +
            mkEzf/qptbClEL3IdqcFCHXhmFZ9x6Ed6zykgKb3i+qWKcXBRJ+PEQeANS/2HnyV
         
     | 
| 
      
 25 
     | 
    
         
            +
            wtRN70UaLag9RBq8bFD9Fyh7NBKzlcf3CoqYKxGFnegHvhtwI+X2B9bNxJam/V49
         
     | 
| 
      
 26 
     | 
    
         
            +
            2TCHhx3GAtqL8f29PHUATudvdvTQXTsmm5CB5QD/hvwYO1f1DMP9qMQAr7FDz8t9
         
     | 
| 
      
 27 
     | 
    
         
            +
            2+sSWL8GyG7PI4aQ8pr7a6q2dXK2AWfXF/avAc1gXzmU8pk/m5j4qLRNA9OIxoec
         
     | 
| 
      
 28 
     | 
    
         
            +
            rj5FCGkwP/mR9u3eB2AGTPU1OzWwkoQpy2H3kTVdQ7UWqz72pA3v3t+gEqAfw9RB
         
     | 
| 
      
 29 
     | 
    
         
            +
            Bf/hugMNWXFdy8S0P6mzRq9gcjMrLfDI/0Q2tYXhzoMrBBgsSq3uM0N4WS0dj+ck
         
     | 
| 
      
 30 
     | 
    
         
            +
            -----END RSA PRIVATE KEY-----
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN RSA PRIVATE KEY-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIEpAIBAAKCAQEAyINyAOHXX8VRh8IC+hs+jB78tOqM6dvJt40L1sAjKc78zt+Y
         
     | 
| 
      
 3 
     | 
    
         
            +
            WJI/DdU7c8Rs+gv0DvVwjEFDXk6O3DsREInmqXUsh6YyC2M4BdLrlUkuKJnTg3FS
         
     | 
| 
      
 4 
     | 
    
         
            +
            BG5eXNA/eBOME0A94YQAkREEqHREfUZv6T8EwNPz17dtWD+wmezKA4ZtGugAajOK
         
     | 
| 
      
 5 
     | 
    
         
            +
            3txRJsGA4GAiAP1JL+yr3yAnI4gqkkekFrs0ChhfRXKMppGaSgBWOFOLtoUzWmXP
         
     | 
| 
      
 6 
     | 
    
         
            +
            mI5etpyIUGpp7l7YLlc/HiwI7bwtVcpEDUqGj+iBrfAbsg8yrsNY5VDJXrABX2kB
         
     | 
| 
      
 7 
     | 
    
         
            +
            7rHuRga5FfZQZFzP1XiDAINdnI8zZ8/x6peAkwIDAQABAoIBAQDBa+LmLPUoglwi
         
     | 
| 
      
 8 
     | 
    
         
            +
            fCmJAAz299FH59YkpQrRz/JypweEhhHisVfxYKoIewANrZZ+Ile8slBuS2pkJ52x
         
     | 
| 
      
 9 
     | 
    
         
            +
            nhzY+l2Sa+CXvd8akwxwucTdTimDqteZPRAkDB9kotIGz7xYuai3yTEOvv7iTL3g
         
     | 
| 
      
 10 
     | 
    
         
            +
            pri/pDW+mPboyR1mepGt+ffpLJxEzYAW6IbX7BYsDLVZgyluj0JguAZG+6IGATwm
         
     | 
| 
      
 11 
     | 
    
         
            +
            AsvxWu32UclJIPvkZMmlmTiAXozqy4giZMkjujGq04srz6bk3vtfcnKqt7uTd/3J
         
     | 
| 
      
 12 
     | 
    
         
            +
            4RETTUTpTKfXmdiFeWacb8dJ9qpmq3fBsl6+AhuzIE7Uwfpf8s2ip0J7JnaMqldH
         
     | 
| 
      
 13 
     | 
    
         
            +
            Cgs85xaJAoGBAO7v4+PbXkmMZZSyyKVMpj+KHnG0S0LqnuaxPGAHJhH3VUBFyQ99
         
     | 
| 
      
 14 
     | 
    
         
            +
            UCZdn2CiR1m57LA5ZqI6RtpqN/iSCnyr6SBod03ngZQ8vqdlSleUYKzOn906yDNA
         
     | 
| 
      
 15 
     | 
    
         
            +
            rO08vTSi4dgypgIE96TyPN0E6j0yIF+pz5xXr4HUPS61WAZ+VbziVRr3AoGBANbV
         
     | 
| 
      
 16 
     | 
    
         
            +
            HeXypaL7h4JEzxwxGo5NdTV8dL8Gncy0KynNyLvHrc+EYGOG3ggKk2X/4xKBUUyr
         
     | 
| 
      
 17 
     | 
    
         
            +
            KcVXPG+dKV8HGlnWqS1F6fnqQXxV+jfEGTPPM3npQNSavHPDAh0OpEOq9guY3yYd
         
     | 
| 
      
 18 
     | 
    
         
            +
            FvEqNlXE/hr7sAJJizbtbZBud1QA34F9mYINZ6RFAoGARVysakwXXgB8yKLx7lKG
         
     | 
| 
      
 19 
     | 
    
         
            +
            /HELD3UIWB+mC1AuN647lgGX5PWdPXriVpDdIH9beSepFytCqRuD0An/v5AdrT12
         
     | 
| 
      
 20 
     | 
    
         
            +
            iqro31uyWScdLZkQ8MWpHuFItT9IOOCwkpoMTwhtyYZCfNmWTnLnyj2QBj3T+hFg
         
     | 
| 
      
 21 
     | 
    
         
            +
            rIEj+Ot062dHa3MnTpLho9cCgYEAkBldN5s9fQgISdnLrhZFwMO15c14JZXTjLYg
         
     | 
| 
      
 22 
     | 
    
         
            +
            6aZtiX8TV8lsOfYBwhUN73HnJsd0998rYoH0OM2LLYF/LFlvGr31hjuZ90NYVcWE
         
     | 
| 
      
 23 
     | 
    
         
            +
            PhsyZQiPAsxTsbZRGZpzliv7Y6YDr/X9KIBu97Lt2r2NvssDxTEWt7VQ9xiq0pmj
         
     | 
| 
      
 24 
     | 
    
         
            +
            uPcy2J0CgYBNuetHnG0NBFHtidyjV/kvvJ2E5vt9dBxcC4dBssi6XWyiuO/KlRIM
         
     | 
| 
      
 25 
     | 
    
         
            +
            T0tBXHS4PlkyO4O/KTugEZmLiGvVowCGx1CjhU0rTKwZNSAfyFRrngQvkHCqAaoK
         
     | 
| 
      
 26 
     | 
    
         
            +
            CM7zlXxnRedmLKD83vNlP1jnpnuLPSJNZrQy1Avy5xKSmiO1NYvm0Q==
         
     | 
| 
      
 27 
     | 
    
         
            +
            -----END RSA PRIVATE KEY-----
         
     | 
| 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN CERTIFICATE-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIDczCCAlugAwIBAgILALvoPZFcaSh8StIwDQYJKoZIhvcNAQELBQAwUzELMAkG
         
     | 
| 
      
 3 
     | 
    
         
            +
            A1UEBhMCVVMxCzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MR8w
         
     | 
| 
      
 4 
     | 
    
         
            +
            HQYDVQQDDBZjYS50ZXN0aW5nLmZsdWVudGQub3JnMCAXDTcwMDEwMTAwMDAwMFoY
         
     | 
| 
      
 5 
     | 
    
         
            +
            DzIxMTgwOTE5MDYwNDU2WjBXMQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExFjAU
         
     | 
| 
      
 6 
     | 
    
         
            +
            BgNVBAcMDU1vdW50YWluIFZpZXcxIzAhBgNVBAMMGnNlcnZlci50ZXN0aW5nLmZs
         
     | 
| 
      
 7 
     | 
    
         
            +
            dWVudGQub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5LPQ9WhJ
         
     | 
| 
      
 8 
     | 
    
         
            +
            LE91y+ttRTgBhkDZo8lRBtxX5NDMR5dak2WCKwsM5ZtN5LaYNNbG73i7HOSu3zvu
         
     | 
| 
      
 9 
     | 
    
         
            +
            NOUEop7q5ci0tcx8jw9DidwOYjqsC7IvcwCFzc4JuQuVZgofVUf8Ia0LWPtOMBqM
         
     | 
| 
      
 10 
     | 
    
         
            +
            /LlXW0s+am9am0oNaOYV6VLTXr+2YzYhSoQEVu+FeoWN2wKfPuI01+6tWRwIDnbU
         
     | 
| 
      
 11 
     | 
    
         
            +
            avRVDeFaHlSJVHaeNavMX7x+tWHpOy3JU0J5u29G7eplLXv8s8cI3p+CY9UpODFw
         
     | 
| 
      
 12 
     | 
    
         
            +
            J9Ii7/SH4yR8iaOPhZPE/clf7AWioPOstctnPh2E+x6oM2Rkzp8HNX1s0gBpispW
         
     | 
| 
      
 13 
     | 
    
         
            +
            ft+DJoEB28JCsQIDAQABo0IwQDAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIG
         
     | 
| 
      
 14 
     | 
    
         
            +
            QDALBgNVHQ8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEL
         
     | 
| 
      
 15 
     | 
    
         
            +
            BQADggEBAAAKJcp/ZBYyClafm4JXGaiolgH9z8BfOktSxOCWmJrfKbflkPOu2UqZ
         
     | 
| 
      
 16 
     | 
    
         
            +
            UKJAUtDJVWU+U+oUDfnMpq0/iBm1HioxXfV8lSXKP380o7wQuar8G2jSjbGPWCxr
         
     | 
| 
      
 17 
     | 
    
         
            +
            v0PMx3buD0saS2A5sDgH+V5gMIPP/ZiuEu3Mro0+mHRj194vs/1Iedfd5Khg0o15
         
     | 
| 
      
 18 
     | 
    
         
            +
            Hs15qcqY16E2TvuirONBwwMu+Zuemnu0NbwxyRx0VoHCDTJ4JMhVTGNLa/xWvwD4
         
     | 
| 
      
 19 
     | 
    
         
            +
            YoqYnWm3DIVr1hmWivCUD6p+wU6aywGMu8uGBA7pZtP748l/tsMOzOhYNE0h514F
         
     | 
| 
      
 20 
     | 
    
         
            +
            FxFbU/Iyvo2KW60v9HnaJsCk1LjXIHU=
         
     | 
| 
      
 21 
     | 
    
         
            +
            -----END CERTIFICATE-----
         
     | 
| 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN CERTIFICATE-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIDcjCCAlqgAwIBAgIKUV9t8OkUnCm2mDANBgkqhkiG9w0BAQsFADBTMQswCQYD
         
     | 
| 
      
 3 
     | 
    
         
            +
            VQQGEwJVUzELMAkGA1UECAwCQ0ExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxHzAd
         
     | 
| 
      
 4 
     | 
    
         
            +
            BgNVBAMMFmNhLnRlc3RpbmcuZmx1ZW50ZC5vcmcwIBcNNzAwMTAxMDAwMDAwWhgP
         
     | 
| 
      
 5 
     | 
    
         
            +
            MjExODA5MTkwNjA0NTZaMFcxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEWMBQG
         
     | 
| 
      
 6 
     | 
    
         
            +
            A1UEBwwNTW91bnRhaW4gVmlldzEjMCEGA1UEAwwac2VydmVyLnRlc3RpbmcuZmx1
         
     | 
| 
      
 7 
     | 
    
         
            +
            ZW50ZC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIg3IA4ddf
         
     | 
| 
      
 8 
     | 
    
         
            +
            xVGHwgL6Gz6MHvy06ozp28m3jQvWwCMpzvzO35hYkj8N1TtzxGz6C/QO9XCMQUNe
         
     | 
| 
      
 9 
     | 
    
         
            +
            To7cOxEQieapdSyHpjILYzgF0uuVSS4omdODcVIEbl5c0D94E4wTQD3hhACREQSo
         
     | 
| 
      
 10 
     | 
    
         
            +
            dER9Rm/pPwTA0/PXt21YP7CZ7MoDhm0a6ABqM4re3FEmwYDgYCIA/Ukv7KvfICcj
         
     | 
| 
      
 11 
     | 
    
         
            +
            iCqSR6QWuzQKGF9FcoymkZpKAFY4U4u2hTNaZc+Yjl62nIhQamnuXtguVz8eLAjt
         
     | 
| 
      
 12 
     | 
    
         
            +
            vC1VykQNSoaP6IGt8BuyDzKuw1jlUMlesAFfaQHuse5GBrkV9lBkXM/VeIMAg12c
         
     | 
| 
      
 13 
     | 
    
         
            +
            jzNnz/Hql4CTAgMBAAGjQjBAMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZA
         
     | 
| 
      
 14 
     | 
    
         
            +
            MAsGA1UdDwQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsF
         
     | 
| 
      
 15 
     | 
    
         
            +
            AAOCAQEAnLqulP1n8fggiY5e6WukL8MmBitpalxLkzRRL7xBihQJzsiNjpA/Lt95
         
     | 
| 
      
 16 
     | 
    
         
            +
            Syabg73nDOTl98wCQJw/PWmZjDCgKf2c1UA+L9fSkLxQf5gLTMnVz6g6tB5m2LdA
         
     | 
| 
      
 17 
     | 
    
         
            +
            QAG+B2uucye4e/uFxJ1wkXDC508ipi0NzgG1/tO8ZX0SzeMxV2nH4jjn1X3jOHcM
         
     | 
| 
      
 18 
     | 
    
         
            +
            xvB32+sZdYCk8tmZ4s3cSKLKjoP8YaTiII7MjmYNTGuuUE4QL5Q1t8u1NcGvLIc/
         
     | 
| 
      
 19 
     | 
    
         
            +
            yfjHjvifA2aoyS20H06wOxUMtqP0n5yRYv7aLSqX7ZG9Srrnraaa1lSrv9mNR6GR
         
     | 
| 
      
 20 
     | 
    
         
            +
            i4v43IXfyTa69dx2otUQpF2/NkUBNQ==
         
     | 
| 
      
 21 
     | 
    
         
            +
            -----END CERTIFICATE-----
         
     | 
| 
         @@ -0,0 +1,30 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN RSA PRIVATE KEY-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            Proc-Type: 4,ENCRYPTED
         
     | 
| 
      
 3 
     | 
    
         
            +
            DEK-Info: AES-256-CBC,FDFF12531E3F46EA8FB2AF34CF90DAB0
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            wZAwCeW2uOYVFeZPKR9x1og5wXZl2HJiLTyG5wK5P+6naKMhr2sKtyB3QWpVUnTL
         
     | 
| 
      
 6 
     | 
    
         
            +
            TPkqn3J8C0sWDNByI6nG4xtceFi9HMoBzwfhtmThnFE1BDqCaDktkg7SCc43/w6y
         
     | 
| 
      
 7 
     | 
    
         
            +
            pw0GpJzgldGiMV1HSpFNAP/yUqV1Ybbro7wk7kRahT5ryKNqeWWgr9DvQ+O61dKK
         
     | 
| 
      
 8 
     | 
    
         
            +
            jChFmDZgbokAFYl8SicAcUt8KIZp0UonLYe8neXki/gVip10+M9pphdntO7r68hJ
         
     | 
| 
      
 9 
     | 
    
         
            +
            lDwuHoos9YNkfsaTW3Ef6e+nbnw6FwY+Yms/g/2ItkuhO+6zohhLniynB3kOsBnb
         
     | 
| 
      
 10 
     | 
    
         
            +
            9BxtY9EdkNbFijPZpAMOLprfmuVT/MpoHxGeCdIvS2iaOKPMzDWGD6QvFd+0cyoP
         
     | 
| 
      
 11 
     | 
    
         
            +
            Dl8imzFf36FzBexdj3/0Luq/O4blxfaiUpWUTMFUxhwMI/FP60wANpBFMCLOkKZw
         
     | 
| 
      
 12 
     | 
    
         
            +
            uJCmypJ3Bq4Ay72KGOp0/SuTn6gthkR7e1zqjOrncc4feEIWNN3GvGkJX/0hF9/h
         
     | 
| 
      
 13 
     | 
    
         
            +
            ValvPboYB0C3Um3vP1lcva6HNTbnBROfHlpXs2PwuKNkHhifynY3cnU9qSR2LXEK
         
     | 
| 
      
 14 
     | 
    
         
            +
            4atBC3aJlcsZrAxYKLUhI/rCvZ2buLPqsELUNcauP1SR6OJtSG2QokAd8Tt+070D
         
     | 
| 
      
 15 
     | 
    
         
            +
            WDPNhIP+06AaKhQI9r+eiKY12SZboxns+Fg8/0VTBxiX9OzOTz+4z5WHX7epPOKj
         
     | 
| 
      
 16 
     | 
    
         
            +
            ITvI3lq577RHQvvc9BPTfWYvLv5GU00UQbbJ4BalUlV7j9EDpp+jyExtFMnucd/K
         
     | 
| 
      
 17 
     | 
    
         
            +
            f8/WFchPbL/yqOf8T7BCTywk+nGho6pPNkMoja/ACtVau07MjizRT1MhrX2CMNuP
         
     | 
| 
      
 18 
     | 
    
         
            +
            O/8BsjTDYRCtuM4bqe5hvOmyfZ4i2yx9CiAFc8iWQM3dVEchz5azaxKjX2YlSmNr
         
     | 
| 
      
 19 
     | 
    
         
            +
            Ch4zbyBq7H0rHjLqSezgQivkLVDHhIe5Nt/lj5sF/QUT12sD2WJIt7rAk+Fb8qZX
         
     | 
| 
      
 20 
     | 
    
         
            +
            cjSnirLC0qNhsLwLrS425r1vJgHB9VDQPlL5NJQW4kMmoNXv4+vHYVkxU7hxzw21
         
     | 
| 
      
 21 
     | 
    
         
            +
            rFgOWoBXVRK1vO5nE95gX3zgF1F2JxmWjBTrAxG9fE7zbrcz2Bokz0jbUn+6UEyA
         
     | 
| 
      
 22 
     | 
    
         
            +
            79aYnuPBZL2DbHE7fsVZL19sb4LUVA+HtVzCEQDrnCR1ew0TXG9LLtVYzP/XiAgd
         
     | 
| 
      
 23 
     | 
    
         
            +
            PaHrlYoyA/46+ho8bGckj37hFALulOP0a/RlJ1s7Axnl4R8GsK7IBA4igGaPyEET
         
     | 
| 
      
 24 
     | 
    
         
            +
            r4IK1skY3xjCtiEDI/inuIr51hnqUoVhTqmA5YCT3qG3CoJ/glaaUL9d0/Er2IWp
         
     | 
| 
      
 25 
     | 
    
         
            +
            nBcOIBEuE5gxwgNQPKXSV0VG1Pkp8nWpVkG1hk4uwQL0w/pLiouQk86Sz9VxBDlp
         
     | 
| 
      
 26 
     | 
    
         
            +
            Llw+Y9gAdrSswZNRItOfUp7QZle48cbTnxhApGaAFKDjXDyXu2xEQsD+GXqsVrqE
         
     | 
| 
      
 27 
     | 
    
         
            +
            1ouiKcE5AIV6aZ7GiBm9Js8C5/sIQHqa900/R2H+avv6QYaQNrvE+ihQRRSQ5+79
         
     | 
| 
      
 28 
     | 
    
         
            +
            2EZWJhGLe5jfylVNjKGIZSN12GC7hSTbze0Lmr3W3FZnOOCm95XPuuZVaKVjXCW6
         
     | 
| 
      
 29 
     | 
    
         
            +
            G37029JZjeoLjouMYFTxgyN/v5TlsuhPRzoFrODqanL/w8sXFPijSJaYW7R0sVJu
         
     | 
| 
      
 30 
     | 
    
         
            +
            -----END RSA PRIVATE KEY-----
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN RSA PRIVATE KEY-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIEowIBAAKCAQEAv99VXFkMqdT//4p0lXTIlA68tP3kTTAmYemyi3nX2K5I03ML
         
     | 
| 
      
 3 
     | 
    
         
            +
            O9OXpU6rNP/JA39fh2bk89la8l1jlDRzUO+dKxYZnyZ0BnYCeTsSM5JnJ96S97cV
         
     | 
| 
      
 4 
     | 
    
         
            +
            EZRRqdtpArjKpaIL3dnnSk0j+67e+lxj/YbKizcErvvjRnvK0P7F5JtbusUQMQgL
         
     | 
| 
      
 5 
     | 
    
         
            +
            UG1PwMviiNkrP40DiKOYjEaSYVSH9VtBgDX0x1oLjLBZUS7HD7lvO0cSIlcHns0N
         
     | 
| 
      
 6 
     | 
    
         
            +
            NyxlribDPW0VKg4wbEa1qZpVFlxSHudfi/ZUKlAm8Ib7jN4dzpA9pMrhFBl/vStn
         
     | 
| 
      
 7 
     | 
    
         
            +
            WpczYYg3ncHhMo6EOxyByyV+iEv9tR4ynbOu5QIDAQABAoIBAHPAly2kJ0iZ0Gro
         
     | 
| 
      
 8 
     | 
    
         
            +
            q1ay4oK3tU53UPDkGHO/WdBdDEOTOSofYGqSRw0aPZ02pp0ujYIRKBSYTw6iGn4B
         
     | 
| 
      
 9 
     | 
    
         
            +
            eoQcWjPxHDnwJ9TyAqICagOk0giydPVuhQ5a7T1MubhDpTVxYjlPyQIBMbEXmTtu
         
     | 
| 
      
 10 
     | 
    
         
            +
            23/Kfoyn/3JVUZJnAj89REObGia8yP7Iz1BtPIN34NvXVUcyt+DbqBWksFDcUAC7
         
     | 
| 
      
 11 
     | 
    
         
            +
            B+yKHg9gbpQNlM8s4it1vWmmQNif/DBoV8/bUrCqh7G3mTPGr6vuovFR+m0PxZa2
         
     | 
| 
      
 12 
     | 
    
         
            +
            nWn4V+I3/O0LxpKstOyg13YEaaw6U6IBZ2881hNPaDuZ+QPIBaM8fTWZCGjIMAeH
         
     | 
| 
      
 13 
     | 
    
         
            +
            25uN1GECgYEA9xMrAodz3EG4E9tNza+gEF6pGFALYlaK7xsrlfY0b5V1Yab7NAjG
         
     | 
| 
      
 14 
     | 
    
         
            +
            XH4DBZ7V8KN86xFOZ36KlVw/3WgXW3Akw0LHkYPLtxKvArTxn6/gEUS0UiLS1mEi
         
     | 
| 
      
 15 
     | 
    
         
            +
            tZO3ackRr9ZB/Z+SuwXpgS0ogtFIi7XVRNOGFfBarSENplsFTRGLEV0CgYEAxs2t
         
     | 
| 
      
 16 
     | 
    
         
            +
            zi9sh+GmQW3CKYUFlH8bj/erYRy5ulV+sUxP94UUhTGz+XzlUn/k4lIu0vzRFIcY
         
     | 
| 
      
 17 
     | 
    
         
            +
            Ed74KPzpDTZd1Sh8N5Cgq1ag83oYlTrpY1Dj3iShVYMnMCSYSHzNZGmTztnAiTq7
         
     | 
| 
      
 18 
     | 
    
         
            +
            wGfKcV63hb7HMpoODcdqfgx3a601O3C1YDZ0EykCgYAzHwwvIcefMxnbQez/Oe9s
         
     | 
| 
      
 19 
     | 
    
         
            +
            c6mZFjbEyhNFFeIWzTJcRBhddCdVxNsGGCyX5R1vBOS73oDSeSRDcyrjrL3odXOl
         
     | 
| 
      
 20 
     | 
    
         
            +
            0xNn0FU+M+dyL+4ulD1QVV7Z/8qQANklqMKyaJ/4OeS9jV7Ww4pk5+sR5iuUfLL7
         
     | 
| 
      
 21 
     | 
    
         
            +
            4qhDsc+RMt2YJg0avR6BIQKBgGj6jXAWbNooFvHv8pqYKsUqhbR1VWNXlt/Fa7xW
         
     | 
| 
      
 22 
     | 
    
         
            +
            Dtgmxxo6j84L3NC+xm+YdC9n30RWvigZtLN4MdyPO+dmlImG7sDrYtyPOdH7pOiT
         
     | 
| 
      
 23 
     | 
    
         
            +
            +2//qc4NDrGGcX+9n3wJoEqXg+szP5evdyB8oq6WenvHC+rMxfg/vwP2F+kGcFCZ
         
     | 
| 
      
 24 
     | 
    
         
            +
            EJxZAoGBANiBa2CNHvK2E6Lqx5fRe//G9dvpjszQWIIWeFJ3uyEuQQ/mZu9S7Vmj
         
     | 
| 
      
 25 
     | 
    
         
            +
            bhyeH2Z9r9D9MLZDVoclXOzvPvT8KhguLwnb1zJUoGmWIjkTQv7LAhWal12fDfRg
         
     | 
| 
      
 26 
     | 
    
         
            +
            n4FhPKjvcRLMIf+IKYQ3ZDysJGUsGaduTBR5QjyZYxV1QZLNYMqp
         
     | 
| 
      
 27 
     | 
    
         
            +
            -----END RSA PRIVATE KEY-----
         
     | 
| 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN CERTIFICATE-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIDVDCCAjygAwIBAgIKWcJH+2qScaQGFTANBgkqhkiG9w0BAQsFADBXMQswCQYD
         
     | 
| 
      
 3 
     | 
    
         
            +
            VQQGEwJVUzELMAkGA1UECAwCQ0ExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxIzAh
         
     | 
| 
      
 4 
     | 
    
         
            +
            BgNVBAMMGnNlcnZlci50ZXN0aW5nLmZsdWVudGQub3JnMCAXDTcwMDEwMTAwMDAw
         
     | 
| 
      
 5 
     | 
    
         
            +
            MFoYDzIxMTgwOTE5MDYwNDU2WjBXMQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0Ex
         
     | 
| 
      
 6 
     | 
    
         
            +
            FjAUBgNVBAcMDU1vdW50YWluIFZpZXcxIzAhBgNVBAMMGnNlcnZlci50ZXN0aW5n
         
     | 
| 
      
 7 
     | 
    
         
            +
            LmZsdWVudGQub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAouXb
         
     | 
| 
      
 8 
     | 
    
         
            +
            cQ3Ij+n8H4MyOk1CBOh8B7cblXsmyHtDnYstzFO6ouoYssZ8WbJmWetqA1z3Lcr9
         
     | 
| 
      
 9 
     | 
    
         
            +
            0Ft8gFIYkBywb4V1hFcJ/G4feIcAvVrjL22/jqqLA8dlXLCqCywo7yHffEzBAn59
         
     | 
| 
      
 10 
     | 
    
         
            +
            vckYL69WZEJWP0bGz+0My82pU5r5rKgzhhuQKzdlypVSaKVvpYF9LMfLj/aiCPRM
         
     | 
| 
      
 11 
     | 
    
         
            +
            hg+jwhVX0z2xYpu47IId/gmM2K81m+s/OSDBijuph6RxwoONkM3s40+HNLGxAaDz
         
     | 
| 
      
 12 
     | 
    
         
            +
            3XJenkcy4Zl+74n3yGxLYFoTUTapT1gd0/3uaA7Q+8rMc5aMKJtcksB/fAsz6v8B
         
     | 
| 
      
 13 
     | 
    
         
            +
            Wdu1yyPtAmbAwA44FwIDAQABoyAwHjAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQE
         
     | 
| 
      
 14 
     | 
    
         
            +
            AwIGQDANBgkqhkiG9w0BAQsFAAOCAQEAMyGTHFu4DRNx6HQMjcYEaNAFRYVjVkRV
         
     | 
| 
      
 15 
     | 
    
         
            +
            43hoTO5lBUNbe2RxwcRzIFW40PW3BQnO7xrMcgcy8X1sukTRV4iHR/RO1OSrOmI/
         
     | 
| 
      
 16 
     | 
    
         
            +
            Dp1goB/XAhHHi6Q250M4HtuiBsfSCxk8ASNnXESYitT01Y9+WNIT5Ir65+3L8f2f
         
     | 
| 
      
 17 
     | 
    
         
            +
            OygQ/QXv3PlK+HtbZJMsYfmFn45d8iXSuIZzjAIJ+GzB1chgslfqcPtWIzwyi3py
         
     | 
| 
      
 18 
     | 
    
         
            +
            NLN5o7bnzhWzViq2g4MCh4nBJIPFRsCh7wzBy97KiU7Ex9L9WSRwTUbeRLx6K7YI
         
     | 
| 
      
 19 
     | 
    
         
            +
            4MV5v1pz3RbPbD4AS7QgIsBRlW0udWvc1zzNzHGEMGjMGz5K/UEsQQ==
         
     | 
| 
      
 20 
     | 
    
         
            +
            -----END CERTIFICATE-----
         
     | 
| 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            -----BEGIN CERTIFICATE-----
         
     | 
| 
      
 2 
     | 
    
         
            +
            MIIDVTCCAj2gAwIBAgILALCfeVLdPoGOQEcwDQYJKoZIhvcNAQELBQAwVzELMAkG
         
     | 
| 
      
 3 
     | 
    
         
            +
            A1UEBhMCVVMxCzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MSMw
         
     | 
| 
      
 4 
     | 
    
         
            +
            IQYDVQQDDBpzZXJ2ZXIudGVzdGluZy5mbHVlbnRkLm9yZzAgFw03MDAxMDEwMDAw
         
     | 
| 
      
 5 
     | 
    
         
            +
            MDBaGA8yMTE4MDkxOTA2MDQ1NlowVzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNB
         
     | 
| 
      
 6 
     | 
    
         
            +
            MRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MSMwIQYDVQQDDBpzZXJ2ZXIudGVzdGlu
         
     | 
| 
      
 7 
     | 
    
         
            +
            Zy5mbHVlbnRkLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL/f
         
     | 
| 
      
 8 
     | 
    
         
            +
            VVxZDKnU//+KdJV0yJQOvLT95E0wJmHpsot519iuSNNzCzvTl6VOqzT/yQN/X4dm
         
     | 
| 
      
 9 
     | 
    
         
            +
            5PPZWvJdY5Q0c1DvnSsWGZ8mdAZ2Ank7EjOSZyfekve3FRGUUanbaQK4yqWiC93Z
         
     | 
| 
      
 10 
     | 
    
         
            +
            50pNI/uu3vpcY/2Gyos3BK7740Z7ytD+xeSbW7rFEDEIC1BtT8DL4ojZKz+NA4ij
         
     | 
| 
      
 11 
     | 
    
         
            +
            mIxGkmFUh/VbQYA19MdaC4ywWVEuxw+5bztHEiJXB57NDTcsZa4mwz1tFSoOMGxG
         
     | 
| 
      
 12 
     | 
    
         
            +
            tamaVRZcUh7nX4v2VCpQJvCG+4zeHc6QPaTK4RQZf70rZ1qXM2GIN53B4TKOhDsc
         
     | 
| 
      
 13 
     | 
    
         
            +
            gcslfohL/bUeMp2zruUCAwEAAaMgMB4wCQYDVR0TBAIwADARBglghkgBhvhCAQEE
         
     | 
| 
      
 14 
     | 
    
         
            +
            BAMCBkAwDQYJKoZIhvcNAQELBQADggEBAJ5U5HGK2lmK6NKQGw63tbBqQ38tSCix
         
     | 
| 
      
 15 
     | 
    
         
            +
            a3OwOQ9M4KeVGgAiG6fgESgv0AAN37pzoNRQ1soPOIazovdsbKUcec/cbMQoODuO
         
     | 
| 
      
 16 
     | 
    
         
            +
            g9KqueecB0BkSgIQXJWtoFWn1m9I/11VnbCbv1fYsui5fKANL9V6QUa052oNu1X+
         
     | 
| 
      
 17 
     | 
    
         
            +
            8I6FQpgzcY3sGw8jiu1sQYBg6wIQJfl4bf6wQBqVhUeaSeY++1F1SNuB0k6H2DgA
         
     | 
| 
      
 18 
     | 
    
         
            +
            OgGULEvcIb0dvSh/luOpIHoUsyv77aKWnC3LSwUD/M8/Lv43bcJKfDT2KjLeW8DX
         
     | 
| 
      
 19 
     | 
    
         
            +
            lCMESmm0ppShIa/fobNxq2Ale6oFxHma2t7pG8ZxCxn5ojiFQ3R6Lz0=
         
     | 
| 
      
 20 
     | 
    
         
            +
            -----END CERTIFICATE-----
         
     | 
| 
         @@ -0,0 +1,65 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require_relative '../../helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'flexmock/test_unit'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            begin
         
     | 
| 
      
 5 
     | 
    
         
            +
              require 'fluent/plugin_helper/http_server/app'
         
     | 
| 
      
 6 
     | 
    
         
            +
              skip = false
         
     | 
| 
      
 7 
     | 
    
         
            +
            rescue LoadError => _
         
     | 
| 
      
 8 
     | 
    
         
            +
              skip = true
         
     | 
| 
      
 9 
     | 
    
         
            +
            end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            unless skip
         
     | 
| 
      
 12 
     | 
    
         
            +
              class HttpHelperAppTest < Test::Unit::TestCase
         
     | 
| 
      
 13 
     | 
    
         
            +
                NULL_LOGGER = Logger.new(nil)
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                class DummyRounter
         
     | 
| 
      
 16 
     | 
    
         
            +
                  def initialize(table = {})
         
     | 
| 
      
 17 
     | 
    
         
            +
                    @table = table
         
     | 
| 
      
 18 
     | 
    
         
            +
                  end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  def route!(method, path, _req)
         
     | 
| 
      
 21 
     | 
    
         
            +
                    r = @table.fetch(method).fetch(path)
         
     | 
| 
      
 22 
     | 
    
         
            +
                    [200, {}, r]
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                sub_test_case '#call' do
         
     | 
| 
      
 27 
     | 
    
         
            +
                  data(
         
     | 
| 
      
 28 
     | 
    
         
            +
                    'GET request' => 'GET',
         
     | 
| 
      
 29 
     | 
    
         
            +
                    'POST request' => 'POST',
         
     | 
| 
      
 30 
     | 
    
         
            +
                    'DELETE request' => 'DELETE',
         
     | 
| 
      
 31 
     | 
    
         
            +
                    'PUT request' => 'PUT',
         
     | 
| 
      
 32 
     | 
    
         
            +
                    'PATCH request' => 'PATCH',
         
     | 
| 
      
 33 
     | 
    
         
            +
                    'OPTION request' => 'OPTIONS',
         
     | 
| 
      
 34 
     | 
    
         
            +
                    'CONNECT request' => 'CONNECT',
         
     | 
| 
      
 35 
     | 
    
         
            +
                    'TRACE request' => 'TRACE',
         
     | 
| 
      
 36 
     | 
    
         
            +
                  )
         
     | 
| 
      
 37 
     | 
    
         
            +
                  test 'dispatch correct path' do |method|
         
     | 
| 
      
 38 
     | 
    
         
            +
                    r = DummyRounter.new(method.downcase.to_sym => { '/path/' => 'hi' })
         
     | 
| 
      
 39 
     | 
    
         
            +
                    app = Fluent::PluginHelper::HttpServer::App.new(r, NULL_LOGGER)
         
     | 
| 
      
 40 
     | 
    
         
            +
                    m = flexmock('request', method: method, path: '/path/')
         
     | 
| 
      
 41 
     | 
    
         
            +
                    r = app.call(m)
         
     | 
| 
      
 42 
     | 
    
         
            +
                    assert_equal(r.body.read, 'hi')
         
     | 
| 
      
 43 
     | 
    
         
            +
                    assert_equal(r.status, 200)
         
     | 
| 
      
 44 
     | 
    
         
            +
                  end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                  test 'dispatch correct path for head' do |method|
         
     | 
| 
      
 47 
     | 
    
         
            +
                    r = DummyRounter.new(head: { '/path/' => 'hi' })
         
     | 
| 
      
 48 
     | 
    
         
            +
                    app = Fluent::PluginHelper::HttpServer::App.new(r, NULL_LOGGER)
         
     | 
| 
      
 49 
     | 
    
         
            +
                    m = flexmock('request', method: method, path: '/path')
         
     | 
| 
      
 50 
     | 
    
         
            +
                    r = app.call(m)
         
     | 
| 
      
 51 
     | 
    
         
            +
                    assert_equal(r.body.read, '')
         
     | 
| 
      
 52 
     | 
    
         
            +
                    assert_equal(r.status, 200)
         
     | 
| 
      
 53 
     | 
    
         
            +
                  end
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                  test 'if path does not end with `/`' do |method|
         
     | 
| 
      
 56 
     | 
    
         
            +
                    r = DummyRounter.new(head: { '/path/' => 'hi' })
         
     | 
| 
      
 57 
     | 
    
         
            +
                    app = Fluent::PluginHelper::HttpServer::App.new(r, NULL_LOGGER)
         
     | 
| 
      
 58 
     | 
    
         
            +
                    m = flexmock('request', method: method, path: '/path')
         
     | 
| 
      
 59 
     | 
    
         
            +
                    r = app.call(m)
         
     | 
| 
      
 60 
     | 
    
         
            +
                    assert_equal(r.body.read, '')
         
     | 
| 
      
 61 
     | 
    
         
            +
                    assert_equal(r.status, 200)
         
     | 
| 
      
 62 
     | 
    
         
            +
                  end
         
     | 
| 
      
 63 
     | 
    
         
            +
                end
         
     | 
| 
      
 64 
     | 
    
         
            +
              end
         
     | 
| 
      
 65 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,32 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require_relative '../../helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'flexmock/test_unit'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            begin
         
     | 
| 
      
 5 
     | 
    
         
            +
              require 'fluent/plugin_helper/http_server/router'
         
     | 
| 
      
 6 
     | 
    
         
            +
              skip = false
         
     | 
| 
      
 7 
     | 
    
         
            +
            rescue LoadError => _
         
     | 
| 
      
 8 
     | 
    
         
            +
              skip = true
         
     | 
| 
      
 9 
     | 
    
         
            +
            end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            unless skip
         
     | 
| 
      
 12 
     | 
    
         
            +
              class HttpHelperRouterTest < Test::Unit::TestCase
         
     | 
| 
      
 13 
     | 
    
         
            +
                sub_test_case '#mount' do
         
     | 
| 
      
 14 
     | 
    
         
            +
                  test 'mount with method and path' do
         
     | 
| 
      
 15 
     | 
    
         
            +
                    router = Fluent::PluginHelper::HttpServer::Router.new
         
     | 
| 
      
 16 
     | 
    
         
            +
                    router.mount(:get, '/path/', ->(req) { req })
         
     | 
| 
      
 17 
     | 
    
         
            +
                    assert_equal(router.route!(:get, '/path/', 'request'), 'request')
         
     | 
| 
      
 18 
     | 
    
         
            +
                  end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  test 'use default app if path is not found' do
         
     | 
| 
      
 21 
     | 
    
         
            +
                    router = Fluent::PluginHelper::HttpServer::Router.new
         
     | 
| 
      
 22 
     | 
    
         
            +
                    req = flexmock('request', path: 'path/')
         
     | 
| 
      
 23 
     | 
    
         
            +
                    assert_equal(router.route!(:get, '/path/', req), [404, { 'Content-Type' => 'text/plain' }, "404 Not Found\n"])
         
     | 
| 
      
 24 
     | 
    
         
            +
                  end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                  test 'default app is configurable' do
         
     | 
| 
      
 27 
     | 
    
         
            +
                    router = Fluent::PluginHelper::HttpServer::Router.new(->(req) { req })
         
     | 
| 
      
 28 
     | 
    
         
            +
                    assert_equal(router.route!(:get, '/path/', 'hello'), 'hello')
         
     | 
| 
      
 29 
     | 
    
         
            +
                  end
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
              end
         
     | 
| 
      
 32 
     | 
    
         
            +
            end
         
     |