From 6aea1cef2a8b3d66c70bf3e026b03154e5b774cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20Novotn=C3=BD?= <62177414+yardexx@users.noreply.github.com> Date: Mon, 26 Jan 2026 09:50:53 +0100 Subject: [PATCH 1/9] feat: new architecture (#22) * feat: introduce analyzer interface and domain models * feat: implement code analyzer with plugin infrastructure * feat: add security rules * feat: implement configuration management * feat: add core analyzer engine and runner * feat: implement reporters * refactor: migrate CLI commands to new architecture * refactor: update main entry point * refactor: remove legacy security_analyzer module * chore: update dependencies and example configuration * chore: remove obsolete test files * docs: add project context and architecture documentation * refactor(core): cleanup ShieldRunner and reporter selection * feat(analyzer): implement code scanning and issue mapping * fix(analyzer): update analyzer result DTO structure * feat(secrets): implement advanced secret scanning with Gitleaks rules (#18) * feat(core): implement structured error handling system * fix(analyzer): fix secret scanner keyword matching case sensitivity * test: add unit tests for core/config/rules and E2E integration test * feat!: replace gitbook with docs.page (#19) * feat!: replace gitbook with docs.page * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * docs: basic structure * feat: stability improvements (#20) * chore: add test dependencies for analysis rules Add analyzer_testing and test_reflective_loader packages to enable proper unit testing of analysis rules using the official Dart testing framework. * test: add unit tests for all 5 analysis rules Add comprehensive unit tests for security rules using analyzer_testing: - prefer_https_over_http: 11 tests - avoid_hardcoded_urls: 10 tests - avoid_weak_hashing: 8 tests - prefer_secure_random: 7 tests - avoid_hardcoded_secrets: 11 tests Total: 47 new tests covering positive and negative cases. * ci: add tests and code coverage to CI pipeline - Add dart test step to run unit tests on every PR - Add coverage generation and upload to Codecov - Add separate integration test job - Configure codecov.yml with coverage thresholds (70% project, 80% patch) * docs: fix configuration documentation inconsistency Update README and example to correctly document analysis_options.yaml as the configuration file with dart_shield: key, replacing incorrect references to shield_options.yaml. - Add coverage badge to README - Simplify configuration documentation - Update example/analysis_options.yaml to use correct format * feat: add severity metadata and filtering to rules - Create rule_metadata.dart with severity levels and OWASP/CWE refs - Map rule IDs to proper severity (high/medium/low/info) - Add --min-severity flag to analyze command for filtering - Update shield_runner to filter results by minimum severity Severity assignments: - avoid_hardcoded_secrets: high (CWE-798) - prefer_https_over_http: high (CWE-319) - avoid_weak_hashing: medium (CWE-328) - prefer_secure_random: medium (CWE-330) - avoid_hardcoded_urls: low (CWE-547) * chore: update ignore files and clean up tracked files - Add pubspec.lock to .gitignore (not needed for packages) - Add internal docs to .gitignore (GEMINI.md, ROADMAP.md, etc.) - Update .pubignore with test/, tool/, codecov.yml, docs.json - Remove pubspec.lock files from git tracking - Remove internal planning documents from git tracking * style: apply dart format to codebase Run dart format to ensure consistent code style across the project. * ci: raise Dart SDK version * style: formatting * style: formatting * ci: update test suite --- .github/workflows/dart.yml | 20 +- .gitignore | 16 +- .pubignore | 13 + README.md | 66 +- assets/shield_secrets.yaml | 28 - codecov.yml | 18 + docs.json | 157 ++ docs/.gitbook/assets/1.png | Bin 189594 -> 0 bytes docs/.gitbook/assets/2.png | Bin 242756 -> 0 bytes docs/.gitbook/assets/3.png | Bin 240885 -> 0 bytes docs/.gitbook/assets/4.png | Bin 174596 -> 0 bytes docs/.gitbook/assets/image.png | Bin 37215 -> 0 bytes docs/.gitignore | 0 docs/README.md | 44 - docs/SUMMARY.md | 23 - .../img => docs/assets}/shield-logo.svg | 0 docs/assets/title-image.png | Bin 0 -> 798724 bytes docs/basics/commands.md | 2 - docs/basics/configuration.md | 2 - docs/basics/reports.md | 2 - docs/basics/rules.md | 2 - docs/beyond-the-basics/introduction.md | 13 - docs/beyond-the-basics/sast-basics.md | 58 - docs/cli/analyze.mdx | 56 + docs/cli/index.mdx | 83 + docs/cli/init.mdx | 40 + docs/community-and-development/changelog.md | 6 - .../community-and-development/contribution.md | 6 - docs/community-and-development/license.md | 6 - docs/community-and-development/road-map.md | 6 - docs/guides/background/architecture.mdx | 22 + docs/guides/background/sast-basics.mdx | 16 + .../community-and-development/changelog.mdx | 8 + .../community-and-development/license.mdx | 38 + docs/guides/configuration/ignoring.mdx | 48 + docs/guides/configuration/options.mdx | 58 + docs/guides/getting-started/quick-start.mdx | 46 + docs/index.mdx | 15 + docs/quickstart.md | 92 - docs/rulebook/RULE_TEMPLATE.mdx | 54 + .../cryptography/avoid-weak-hashing.mdx | 85 + .../cryptography/prefer-secure-random.mdx | 79 + docs/rulebook/index.mdx | 45 + .../rulebook/network/avoid-hardcoded-urls.mdx | 75 + .../network/prefer-https-over-http.mdx | 67 + .../secrets/avoid-hardcoded-secrets.mdx | 75 + example/analysis_options.yaml | 8 + example/lib/vulnerabilities.dart | 27 +- example/pubspec.yaml | 2 +- example/shield_options.yaml | 38 - lib/assets/assets.dart | 1 - lib/assets/shield_secrets_dart.dart | 31 - lib/main.dart | 3 + lib/src/analyzers/analyzer.dart | 7 + lib/src/analyzers/code/code_analyzer.dart | 96 + .../analyzers/code/plugin/shield_plugin.dart | 15 + .../cryptography/avoid_weak_hashing.dart | 83 + .../cryptography/prefer_secure_random.dart | 63 + .../rules/network/avoid_harcoded_urls.dart | 52 + .../rules/network/prefer_https_over_http.dart | 77 + .../analyzers/code/rules/rule_metadata.dart | 77 + lib/src/analyzers/code/rules/rules.dart | 14 + .../secrets/avoid_hardcoded_secrets.dart | 109 + .../code/rules/secrets/rule_provider.dart | 69 + .../code/rules/secrets/secret_rule.dart | 61 + .../code/rules/secrets/secret_rules.dart | 31 + lib/src/analyzers/utils/analyzer_result.dart | 98 + .../analyzers/utils/diagnostic_mapper.dart | 33 + lib/src/analyzers/utils/dto_mapper.dart | 48 + lib/src/analyzers/utils/shannon_entropy.dart | 34 + lib/src/cli/cli.dart | 1 - lib/src/cli/command_runner.dart | 9 +- lib/src/cli/commands/analyze.dart | 91 - lib/src/cli/commands/analyze_command.dart | 56 + lib/src/cli/commands/commands.dart | 2 - lib/src/cli/commands/init.dart | 55 - lib/src/cli/commands/init_command.dart | 55 + lib/src/configuration/config_manager.dart | 83 + lib/src/configuration/shield_config.dart | 59 + lib/src/configuration/shield_config.g.dart | 30 + lib/src/core/analyzer_engine.dart | 13 + lib/src/core/analyzer_factory.dart | 49 + lib/src/core/shield_run_config.dart | 32 + lib/src/core/shield_runner.dart | 104 + lib/src/domain/analysis_issue.dart | 27 + lib/src/domain/analyzer_result.dart | 39 + lib/src/domain/exceptions.dart | 39 + lib/src/domain/issue_context.dart | 23 + lib/src/generated/fallback_rules.dart | 2371 +++++++++++++++++ lib/src/reporters/console_reporter.dart | 83 + lib/src/reporters/json_reporter.dart | 45 + lib/src/reporters/reporter.dart | 7 + .../configuration/configuration.dart | 1 - .../configuration/glob_converter.dart | 16 - .../configuration/lint_rule_converter.dart | 28 - .../configuration/rule_config.dart | 52 - .../configuration/shield_config.dart | 104 - .../configuration/shield_config.g.dart | 24 - .../exceptions/exceptions.dart | 1 - .../invalid_configuration_exception.dart | 5 - lib/src/security_analyzer/extensions.dart | 71 - .../report/analysis_report/file_report.dart | 50 - .../analysis_report/project_report.dart | 35 - lib/src/security_analyzer/report/report.dart | 3 - .../report/reporters/console_report.dart | 84 - .../report/reporters/issue_reporter.dart | 7 - .../report/reporters/reporters.dart | 1 - .../security_analyzer/rules/enums/enums.dart | 3 - .../rules/enums/rule_id.dart | 29 - .../rules/enums/rule_status.dart | 1 - .../rules/enums/severity.dart | 12 - .../rules/models/matching_pattern.dart | 19 - .../rules/models/matching_pattern.g.dart | 13 - .../rules/models/models.dart | 2 - .../rules/models/shield_secrets.dart | 45 - .../rules/models/shield_secrets.g.dart | 18 - .../rules/rule/error_node_collector.dart | 6 - .../rules/rule/lint_issue.dart | 38 - .../rules/rule/lint_rule.dart | 74 - .../security_analyzer/rules/rule/rule.dart | 3 - .../rules/rule_registry.dart | 57 - lib/src/security_analyzer/rules/rules.dart | 2 - .../rules_list/avoid_hardcoded_secrets.dart | 43 - .../rules_list/avoid_hardcoded_urls.dart | 36 - .../rules_list/crypto/avoid_weak_hashing.dart | 73 - .../rules/rules_list/crypto/crypto.dart | 2 - .../crypto/prefer_secure_random.dart | 50 - .../rules_list/prefer_https_over_http.dart | 57 - .../rules/rules_list/rules_list.dart | 4 - .../security_analyzer/security_analyzer.dart | 104 - .../security_analyzer/utils/suppression.dart | 67 - lib/src/security_analyzer/workspace.dart | 36 - lib/src/utils/path.dart | 25 + lib/src/utils/utils.dart | 1 - lib/src/utils/yaml.dart | 18 - pubspec.yaml | 13 +- rules.json | 2366 ++++++++++++++++ test/fixtures/configs/complete_config.yaml | 14 - test/fixtures/configs/config_examples.dart | 50 - test/fixtures/configs/invalid_config.yaml | 10 - test/fixtures/configs/minimal_config.yaml | 4 - test/fixtures/configs/yaml_inputs.dart | 42 - test/fixtures/dart_files/mixed_code.dart | 61 - test/fixtures/dart_files/secure_code.dart | 48 - .../dart_files/suppression_example.dart | 26 - test/fixtures/dart_files/vulnerable_code.dart | 116 - test/helpers/test_analyzer.dart | 230 -- .../cryptography/avoid_weak_hashing_test.dart | 138 + .../prefer_secure_random_test.dart | 109 + .../network/avoid_hardcoded_urls_test.dart | 124 + .../network/prefer_https_over_http_test.dart | 141 + .../secrets/avoid_hardcoded_secrets_test.dart | 145 + .../code/rules/secrets/secret_rule_test.dart | 60 + .../analyzers/utils/shannon_entropy_test.dart | 44 + .../src/configuration/shield_config_test.dart | 68 + test/src/core/analyzer_factory_test.dart | 63 + test/tool/utils/regex_sanitizer_test.dart | 45 + .../configuration/glob_converter_test.dart | 26 - .../lint_rule_converter_test.dart | 101 - .../configuration/shield_config_test.dart | 77 - .../rules/enums/rule_id_test.dart | 118 - .../rules/enums/rule_status_test.dart | 56 - .../rules/enums/severity_test.dart | 84 - .../rules/models/lint_issue_test.dart | 226 -- .../rules/models/matching_pattern_test.dart | 154 -- .../rules/models/shield_secrets_test.dart | 200 -- .../rules/rule_registry_test.dart | 194 -- .../crypto/prefer_secure_random_test.dart | 239 -- .../utils/suppression_test.dart | 231 -- .../security_analyzer/workspace_test.dart | 280 -- test/unit/utils/yaml_test.dart | 105 - tool/generate_rules.dart | 95 + tool/utils/regex_sanitizer.dart | 98 + 173 files changed, 8781 insertions(+), 4580 deletions(-) delete mode 100644 assets/shield_secrets.yaml create mode 100644 codecov.yml create mode 100644 docs.json delete mode 100644 docs/.gitbook/assets/1.png delete mode 100644 docs/.gitbook/assets/2.png delete mode 100644 docs/.gitbook/assets/3.png delete mode 100644 docs/.gitbook/assets/4.png delete mode 100644 docs/.gitbook/assets/image.png delete mode 100644 docs/.gitignore delete mode 100644 docs/README.md delete mode 100644 docs/SUMMARY.md rename {resources/img => docs/assets}/shield-logo.svg (100%) create mode 100644 docs/assets/title-image.png delete mode 100644 docs/basics/commands.md delete mode 100644 docs/basics/configuration.md delete mode 100644 docs/basics/reports.md delete mode 100644 docs/basics/rules.md delete mode 100644 docs/beyond-the-basics/introduction.md delete mode 100644 docs/beyond-the-basics/sast-basics.md create mode 100644 docs/cli/analyze.mdx create mode 100644 docs/cli/index.mdx create mode 100644 docs/cli/init.mdx delete mode 100644 docs/community-and-development/changelog.md delete mode 100644 docs/community-and-development/contribution.md delete mode 100644 docs/community-and-development/license.md delete mode 100644 docs/community-and-development/road-map.md create mode 100644 docs/guides/background/architecture.mdx create mode 100644 docs/guides/background/sast-basics.mdx create mode 100644 docs/guides/community-and-development/changelog.mdx create mode 100644 docs/guides/community-and-development/license.mdx create mode 100644 docs/guides/configuration/ignoring.mdx create mode 100644 docs/guides/configuration/options.mdx create mode 100644 docs/guides/getting-started/quick-start.mdx create mode 100644 docs/index.mdx delete mode 100644 docs/quickstart.md create mode 100644 docs/rulebook/RULE_TEMPLATE.mdx create mode 100644 docs/rulebook/cryptography/avoid-weak-hashing.mdx create mode 100644 docs/rulebook/cryptography/prefer-secure-random.mdx create mode 100644 docs/rulebook/index.mdx create mode 100644 docs/rulebook/network/avoid-hardcoded-urls.mdx create mode 100644 docs/rulebook/network/prefer-https-over-http.mdx create mode 100644 docs/rulebook/secrets/avoid-hardcoded-secrets.mdx delete mode 100644 example/shield_options.yaml delete mode 100644 lib/assets/assets.dart delete mode 100644 lib/assets/shield_secrets_dart.dart create mode 100644 lib/main.dart create mode 100644 lib/src/analyzers/analyzer.dart create mode 100644 lib/src/analyzers/code/code_analyzer.dart create mode 100644 lib/src/analyzers/code/plugin/shield_plugin.dart create mode 100644 lib/src/analyzers/code/rules/cryptography/avoid_weak_hashing.dart create mode 100644 lib/src/analyzers/code/rules/cryptography/prefer_secure_random.dart create mode 100644 lib/src/analyzers/code/rules/network/avoid_harcoded_urls.dart create mode 100644 lib/src/analyzers/code/rules/network/prefer_https_over_http.dart create mode 100644 lib/src/analyzers/code/rules/rule_metadata.dart create mode 100644 lib/src/analyzers/code/rules/rules.dart create mode 100644 lib/src/analyzers/code/rules/secrets/avoid_hardcoded_secrets.dart create mode 100644 lib/src/analyzers/code/rules/secrets/rule_provider.dart create mode 100644 lib/src/analyzers/code/rules/secrets/secret_rule.dart create mode 100644 lib/src/analyzers/code/rules/secrets/secret_rules.dart create mode 100644 lib/src/analyzers/utils/analyzer_result.dart create mode 100644 lib/src/analyzers/utils/diagnostic_mapper.dart create mode 100644 lib/src/analyzers/utils/dto_mapper.dart create mode 100644 lib/src/analyzers/utils/shannon_entropy.dart delete mode 100644 lib/src/cli/cli.dart delete mode 100644 lib/src/cli/commands/analyze.dart create mode 100644 lib/src/cli/commands/analyze_command.dart delete mode 100644 lib/src/cli/commands/commands.dart delete mode 100644 lib/src/cli/commands/init.dart create mode 100644 lib/src/cli/commands/init_command.dart create mode 100644 lib/src/configuration/config_manager.dart create mode 100644 lib/src/configuration/shield_config.dart create mode 100644 lib/src/configuration/shield_config.g.dart create mode 100644 lib/src/core/analyzer_engine.dart create mode 100644 lib/src/core/analyzer_factory.dart create mode 100644 lib/src/core/shield_run_config.dart create mode 100644 lib/src/core/shield_runner.dart create mode 100644 lib/src/domain/analysis_issue.dart create mode 100644 lib/src/domain/analyzer_result.dart create mode 100644 lib/src/domain/exceptions.dart create mode 100644 lib/src/domain/issue_context.dart create mode 100644 lib/src/generated/fallback_rules.dart create mode 100644 lib/src/reporters/console_reporter.dart create mode 100644 lib/src/reporters/json_reporter.dart create mode 100644 lib/src/reporters/reporter.dart delete mode 100644 lib/src/security_analyzer/configuration/configuration.dart delete mode 100644 lib/src/security_analyzer/configuration/glob_converter.dart delete mode 100644 lib/src/security_analyzer/configuration/lint_rule_converter.dart delete mode 100644 lib/src/security_analyzer/configuration/rule_config.dart delete mode 100644 lib/src/security_analyzer/configuration/shield_config.dart delete mode 100644 lib/src/security_analyzer/configuration/shield_config.g.dart delete mode 100644 lib/src/security_analyzer/exceptions/exceptions.dart delete mode 100644 lib/src/security_analyzer/exceptions/invalid_configuration_exception.dart delete mode 100644 lib/src/security_analyzer/extensions.dart delete mode 100644 lib/src/security_analyzer/report/analysis_report/file_report.dart delete mode 100644 lib/src/security_analyzer/report/analysis_report/project_report.dart delete mode 100644 lib/src/security_analyzer/report/report.dart delete mode 100644 lib/src/security_analyzer/report/reporters/console_report.dart delete mode 100644 lib/src/security_analyzer/report/reporters/issue_reporter.dart delete mode 100644 lib/src/security_analyzer/report/reporters/reporters.dart delete mode 100644 lib/src/security_analyzer/rules/enums/enums.dart delete mode 100644 lib/src/security_analyzer/rules/enums/rule_id.dart delete mode 100644 lib/src/security_analyzer/rules/enums/rule_status.dart delete mode 100644 lib/src/security_analyzer/rules/enums/severity.dart delete mode 100644 lib/src/security_analyzer/rules/models/matching_pattern.dart delete mode 100644 lib/src/security_analyzer/rules/models/matching_pattern.g.dart delete mode 100644 lib/src/security_analyzer/rules/models/models.dart delete mode 100644 lib/src/security_analyzer/rules/models/shield_secrets.dart delete mode 100644 lib/src/security_analyzer/rules/models/shield_secrets.g.dart delete mode 100644 lib/src/security_analyzer/rules/rule/error_node_collector.dart delete mode 100644 lib/src/security_analyzer/rules/rule/lint_issue.dart delete mode 100644 lib/src/security_analyzer/rules/rule/lint_rule.dart delete mode 100644 lib/src/security_analyzer/rules/rule/rule.dart delete mode 100644 lib/src/security_analyzer/rules/rule_registry.dart delete mode 100644 lib/src/security_analyzer/rules/rules.dart delete mode 100644 lib/src/security_analyzer/rules/rules_list/avoid_hardcoded_secrets.dart delete mode 100644 lib/src/security_analyzer/rules/rules_list/avoid_hardcoded_urls.dart delete mode 100644 lib/src/security_analyzer/rules/rules_list/crypto/avoid_weak_hashing.dart delete mode 100644 lib/src/security_analyzer/rules/rules_list/crypto/crypto.dart delete mode 100644 lib/src/security_analyzer/rules/rules_list/crypto/prefer_secure_random.dart delete mode 100644 lib/src/security_analyzer/rules/rules_list/prefer_https_over_http.dart delete mode 100644 lib/src/security_analyzer/rules/rules_list/rules_list.dart delete mode 100644 lib/src/security_analyzer/security_analyzer.dart delete mode 100644 lib/src/security_analyzer/utils/suppression.dart delete mode 100644 lib/src/security_analyzer/workspace.dart create mode 100644 lib/src/utils/path.dart delete mode 100644 lib/src/utils/utils.dart delete mode 100644 lib/src/utils/yaml.dart create mode 100644 rules.json delete mode 100644 test/fixtures/configs/complete_config.yaml delete mode 100644 test/fixtures/configs/config_examples.dart delete mode 100644 test/fixtures/configs/invalid_config.yaml delete mode 100644 test/fixtures/configs/minimal_config.yaml delete mode 100644 test/fixtures/configs/yaml_inputs.dart delete mode 100644 test/fixtures/dart_files/mixed_code.dart delete mode 100644 test/fixtures/dart_files/secure_code.dart delete mode 100644 test/fixtures/dart_files/suppression_example.dart delete mode 100644 test/fixtures/dart_files/vulnerable_code.dart delete mode 100644 test/helpers/test_analyzer.dart create mode 100644 test/src/analyzers/code/rules/cryptography/avoid_weak_hashing_test.dart create mode 100644 test/src/analyzers/code/rules/cryptography/prefer_secure_random_test.dart create mode 100644 test/src/analyzers/code/rules/network/avoid_hardcoded_urls_test.dart create mode 100644 test/src/analyzers/code/rules/network/prefer_https_over_http_test.dart create mode 100644 test/src/analyzers/code/rules/secrets/avoid_hardcoded_secrets_test.dart create mode 100644 test/src/analyzers/code/rules/secrets/secret_rule_test.dart create mode 100644 test/src/analyzers/utils/shannon_entropy_test.dart create mode 100644 test/src/configuration/shield_config_test.dart create mode 100644 test/src/core/analyzer_factory_test.dart create mode 100644 test/tool/utils/regex_sanitizer_test.dart delete mode 100644 test/unit/security_analyzer/configuration/glob_converter_test.dart delete mode 100644 test/unit/security_analyzer/configuration/lint_rule_converter_test.dart delete mode 100644 test/unit/security_analyzer/configuration/shield_config_test.dart delete mode 100644 test/unit/security_analyzer/rules/enums/rule_id_test.dart delete mode 100644 test/unit/security_analyzer/rules/enums/rule_status_test.dart delete mode 100644 test/unit/security_analyzer/rules/enums/severity_test.dart delete mode 100644 test/unit/security_analyzer/rules/models/lint_issue_test.dart delete mode 100644 test/unit/security_analyzer/rules/models/matching_pattern_test.dart delete mode 100644 test/unit/security_analyzer/rules/models/shield_secrets_test.dart delete mode 100644 test/unit/security_analyzer/rules/rule_registry_test.dart delete mode 100644 test/unit/security_analyzer/rules/rules_list/crypto/prefer_secure_random_test.dart delete mode 100644 test/unit/security_analyzer/utils/suppression_test.dart delete mode 100644 test/unit/security_analyzer/workspace_test.dart delete mode 100644 test/unit/utils/yaml_test.dart create mode 100644 tool/generate_rules.dart create mode 100644 tool/utils/regex_sanitizer.dart diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml index 242cbff..7fab192 100644 --- a/.github/workflows/dart.yml +++ b/.github/workflows/dart.yml @@ -17,7 +17,7 @@ jobs: - uses: actions/checkout@v5 - uses: dart-lang/setup-dart@v1.6.5 with: - sdk: '3.9.0' + sdk: '3.10.0' - name: โ›“ Install Dependencies run: dart pub get @@ -28,5 +28,23 @@ jobs: - name: ๐Ÿ“Š Analyze run: dart analyze --fatal-infos --fatal-warnings . + - name: ๐Ÿงช Run Tests + run: dart test --coverage=coverage + + - name: ๐Ÿ“ˆ Generate Coverage Report + run: | + dart pub global activate coverage + dart pub global run coverage:format_coverage \ + --lcov \ + --in=coverage \ + --out=coverage/lcov.info \ + --report-on=lib + + - name: ๐Ÿ“ˆ Upload Coverage + uses: codecov/codecov-action@v4 + with: + files: coverage/lcov.info + fail_ci_if_error: false + - name: ๐Ÿ“Š Run Pana run: dart pub global activate pana && dart pub global run pana diff --git a/.gitignore b/.gitignore index 6646d44..52632d5 100644 --- a/.gitignore +++ b/.gitignore @@ -11,8 +11,20 @@ pubspec.lock coverage/ .test_runner.dart -# Android studio and IntelliJ -.idea +# IDEs and Editors +.idea/ +.vscode/ +*.swp +*.bak + +# macOS +.DS_Store + +# Project +.gemini/ +GEMINI.md +ROADMAP.md +RULES_CATEGORIZATION.md # Custom code_examples/ \ No newline at end of file diff --git a/.pubignore b/.pubignore index efb994d..383be22 100644 --- a/.pubignore +++ b/.pubignore @@ -1,2 +1,15 @@ +# Documentation (hosted separately) docs/ +docs.json + +# GitHub files .github/ + +# CI/CD configuration +codecov.yml + +# Tests (not needed for package consumers) +test/ + +# Internal tooling +tool/ diff --git a/README.md b/README.md index bbf1f1c..30f79b0 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@

Dart-based security-focused code analyzer which analyzes your Dart code for potential security flaws.

Pipelines: GitHub Actions + Coverage Style: Very Good Analysis @@ -63,12 +64,8 @@ To initialize `dart_shield` in your project, run the following command: dart_shield init ``` -This command creates a `shield_options.yaml` file in the root of your project. This file contains -the configuration for `dart_shield`, which will be used during the analysis (similar to -`analysis_options.yaml`). - -If a shield_options.yaml file already exists in your project and you want to recreate it, use the -`-f` or `--force` flag: +This command updates your `analysis_options.yaml` file to include the `dart_shield` configuration. +If the `dart_shield` section already exists and you want to recreate it, use the `-f` or `--force` flag: ```bash dart_shield init -f @@ -87,51 +84,30 @@ dart_shield analyze . dart_shield analyze lib ``` -This command analyzes your Dart code based on the configuration in the shield_options.yaml file. -If the configuration file is not found, the command will fail. +This command analyzes your Dart code for security issues. # Configuration -The `shield_options.yaml` file contains configuration options, primarily rules, for `dart_shield`. -The configuration is similar to the `analysis_options.yaml` file, making it familiar to those who -have -used Dart analysis tools. +Configuration is done through your `analysis_options.yaml` file using the `dart_shield` key. +This approach follows Dart conventions and keeps all analysis configuration in one place. -Example of the `shield_options.yaml` file: +Example configuration in `analysis_options.yaml`: ```yaml -# This is a sample configuration file for dart_shield. -# โš ๏ธ Configuration file must be named `shield_options.yaml` and placed in the root of the project. - -# shield_options.yaml is file with structure similar to analysis_options.yaml and it defines the -# rules that dart_shield will use to analyze your code. - -# The `shield` key is required. -shield: - - # List of excluded files or directories from being analyzed - exclude: - # Exclude a file using path (path begins at the root of the project): - - 'lib/ignored.dart' - # Globs are also supported - - '**.g.dart' - - # List of rules that dart_shield will use to analyze your code - rules: - - prefer_https_over_http - - avoid_hardcoded_secrets - - # Some rules need more fine-tuning and are marked as experimental. - # You can enable them by setting `enable_experimental` to `true`. - enable_experimental: true - - # List of experimental rules that dart_shield will use to analyze your code - # โš ๏ธ Experimental rules are subject to change and may not be as stable as regular rules. - # โš ๏ธ Using "experimental_rules" without setting "enable_experimental" to "true" will cause an error. - experimental_rules: - - avoid_hardcoded_urls - - avoid_weak_hashing - - prefer_secure_random +# Enable dart_shield as an analyzer plugin +analyzer: + plugins: + - dart_shield + +# dart_shield configuration +dart_shield: + analyzers: + code: true # Enable code analysis + + # Future options: + # exclude: + # - 'lib/generated/**' + # - '**.g.dart' ``` # Rules diff --git a/assets/shield_secrets.yaml b/assets/shield_secrets.yaml deleted file mode 100644 index bc0382e..0000000 --- a/assets/shield_secrets.yaml +++ /dev/null @@ -1,28 +0,0 @@ -# Workaround: This file is duplicated in lib/assets/shield_secrets_dart.dart -# because Dart doesn't support native assets yet. -# See: https://github.com/dart-lang/sdk/issues/53562 -# TODO: Use native assets when Dart SDK supports it -shield_patterns: - version: 0.1.0-dev.1 - secrets: - - name: 'Gitlab Personal Access Token' - pattern: 'glpat-[0-9a-zA-Z_\-]{20}' - - name: 'GitHub Personal Access Token' - pattern: 'ghp_[0-9a-zA-Z]{36}' - - name: 'GitHub OAuth Token' - pattern: 'gho_[0-9a-zA-Z]{36}' - - name: 'GitHub App Token' - pattern: '(ghu|ghs)_[0-9a-zA-Z]{36}' - - name: 'AWS Access Token' - pattern: 'AKIA[0-9A-Z]{16}' - - name: 'Stripe Live API Key' - pattern: 'sk_live_[0-9a-zA-Z]{24}' - - name: 'Google API Key' - pattern: 'AIza[0-9A-Za-z\\-_]{35}' - - name: 'Google Cloud Platform Service Account Key' - pattern: '\"type\": \"service_account\"' - - name: 'URL with password' - pattern: '[a-zA-Z]{3,10}:\/\/[^$][^:@\/\n]{3,20}:[^$][^:@\n\/]{3,40}@.{1,100}' - keys: - - name: 'RSA Private Key' - pattern: '-----BEGIN' \ No newline at end of file diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000..f52cb8b --- /dev/null +++ b/codecov.yml @@ -0,0 +1,18 @@ +coverage: + precision: 2 + round: down + range: "60...100" + + status: + project: + default: + target: 70% + threshold: 5% + patch: + default: + target: 80% + +ignore: + - "**/*.g.dart" + - "lib/src/generated/**" + - "test/**" diff --git a/docs.json b/docs.json new file mode 100644 index 0000000..779bbc1 --- /dev/null +++ b/docs.json @@ -0,0 +1,157 @@ +{ + "name": "dart_shield", + "description": "Open-source, dart-first security library for building secure applications.", + "theme": { + "defaultTheme": "dark", + "primary": "#5FC9F8", + "primaryDark": "#04599C" + }, + "content": { + "automaticallyInferNextPrevious": false + }, + "favicon": "/assets/shield-logo.svg", + "logo": { + "light": "/assets/shield-logo.svg", + "dark": "/assets/shield-logo.svg" + }, + "tabs": [ + { + "id": "guides", + "title": "Guides", + "href": "/" + }, + { + "id": "cli", + "title": "CLI", + "href": "/cli/index" + }, + { + "id": "rulebook", + "title": "Rulebook", + "href": "/rulebook/index" + } + ], + "sidebar": [ + { + "tab": "guides", + "group": "Getting Started", + "pages": [ + { + "title": "Introduction", + "href": "/" + }, + { + "title": "Quick Start", + "href": "/guides/getting-started/quick-start" + } + ] + }, + { + "tab": "guides", + "group": "Configuration", + "pages": [ + { + "title": "Options", + "href": "/guides/configuration/options" + }, + { + "title": "Ignoring Rules", + "href": "/guides/configuration/ignoring" + } + ] + }, + { + "tab": "guides", + "group": "Background", + "pages": [ + { + "title": "SAST Basics", + "href": "/guides/background/sast-basics" + }, + { + "title": "Architecture", + "href": "/guides/background/architecture" + } + ] + }, + { + "tab": "guides", + "group": "Community", + "pages": [ + { + "title": "Changelog", + "href": "/guides/community-and-development/changelog" + }, + { + "title": "License", + "href": "/guides/community-and-development/license" + } + ] + }, + { + "tab": "cli", + "group": "Reference", + "pages": [ + { + "title": "Overview", + "href": "/cli/index" + }, + { + "title": "init", + "href": "/cli/init" + }, + { + "title": "analyze", + "href": "/cli/analyze" + } + ] + }, + { + "tab": "rulebook", + "pages": [ + { + "title": "Overview", + "href": "/rulebook/index" + } + ] + }, + { + "tab": "rulebook", + "group": "Cryptography", + "pages": [ + { + "title": "Avoid Weak Hashing", + "href": "/rulebook/cryptography/avoid-weak-hashing" + }, + { + "title": "Prefer Secure Random", + "href": "/rulebook/cryptography/prefer-secure-random" + } + ] + }, + { + "tab": "rulebook", + "group": "Network", + "pages": [ + { + "title": "Prefer HTTPS over HTTP", + "href": "/rulebook/network/prefer-https-over-http" + }, + { + "title": "Avoid Hardcoded URLs", + "href": "/rulebook/network/avoid-hardcoded-urls" + } + ] + }, + { + "tab": "rulebook", + "group": "Secrets", + "pages": [ + { + "title": "Avoid Hardcoded Secrets", + "href": "/rulebook/secrets/avoid-hardcoded-secrets" + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/.gitbook/assets/1.png b/docs/.gitbook/assets/1.png deleted file mode 100644 index 2dadf07d57d290c8e8ec3081587b436023df2330..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 189594 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%0DCvDt)_i@Y;7PJBD5 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 diff --git a/docs/.gitbook/assets/2.png b/docs/.gitbook/assets/2.png deleted file mode 100644 index 01ae5e3a6fdc8306f21a470e5328dae8e1d0d6d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242756 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

(T&UsSJ6Rr;<-xcalwyio7Hty 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
  • #|57Hp55RtmuupO{ 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 diff --git a/docs/.gitbook/assets/image.png b/docs/.gitbook/assets/image.png deleted file mode 100644 index 558b9485bbcdc971d54da08340fa677f670d8a9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37215 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≪N%Duf6l6ZQP%au(<;_KXjZw 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

    ?&#bUrn3{5YlfoQLxB@lG7N^ z@DEChc6~Vz^j2WMz<75#2|~c-PGg^S(tAqOB({jV|3ceWV^}Kd+0*=gG!H8kY%;5Kqv&xb*9b>qt(! zGQ$7)bdmi3Z$GKv3%o8xgd zW^FEDjQ^obr@usr*F~7eGwoR3T?&_7w4OPw%S4AdCxSnIZ9 zY`ku?S)i81GHtUsn%#gch(VMhP##oE_k)rQ^?j)=n;j8BeN zL>{C;R!Q@+ey$BwcWR(A7nWSWO~;0Bm1D)izjjg=#-NjUF{2{{Nat{;-sYDzsTSKK zVib~z=^{&uzjRdRDk^5oNQ$O`&RfJ0Dev$xuZ5#=p%b`=MLGaL)8v#3-!ono0BYh# zqQj^ivuQ`@33w#22we?@q|GIS1jE|sjAEH4y#>g!oDO0R{H!eNt;Xtj2LBv5BXjyt zw4p^|9;Za0PE6vzk!g52Txd-^*_dw2xTzBh4%#yQNsLP0*cOvF>T$-QeRlDg2kmi( z_Hw}YJ^ZMB>hAmPqeqXCFmzx@WKrVy3V*G#dfAQMJ#x~J51~1`QWc{Ptfbya?lVW2 z@8D4sMbf~#)KnO=NuD%JDmS7+6rE>wOyWN>{#|Y!0apGy9DbQ!D+YyJ7aBX`Ayc2^ zm@^KZV9)xh!)v?XIhf(c9{RG~^!fY!>RawfJDOR`J?$v%12!yuwfPWo2CnY7M?E2d zqiy#}IIURlmPe4Bkk3|7b0|(0iEA4Ry4ou0^hC%l`QOy0u?%}&92`^#mh6N;9}MPf zpcuKFk2p+8Sj+poV<7MWIA-u>6Mr!~^~Ak?^pOX26w&+a+2uv0af0Qhm;&87usY-a@V;Gsa7_xL*{Vmg2Qk9E4?bd(AJ5}o*+}No z_wshQ?azx*Al4*^ICY>C;Lvg6K1Mn;o_g}|ZKY3j46}sPLS+zZ*iP7pa+G{enc+tH zb$B;{Y}j%U!t1kVpK^e2kF9lf&jXJ*?3op+7sLbZdMoQTklg1Uj(*{OxJvoe(B`H{ zDy3XV39~$`kMge-h6HmclkmtwY|t@>jaOav1pl!sp0y^G_t?>O&iSGL^p|$+(Jy8s zmEZSCZo~ZM>Q;VS-4}QvAS+W0%Xp;;9ZwD}wCfztc<(KfY@$vorK*@ChxhsC?tH{p z4Y3SSv9Sq)ZL@|){V{!iMfIBH@d*A%g(05Tr`H6d@7c9$v;KFH-GNzI|8p@T2jN(7 z!~4qry+PVl`3o>WF@pcMM%( zjHq$UY5)QWwv5^`SH}PJekXKr!>5S=S+H+LKik)j0tM2LEW>il{~-b^2#!Cc5W zpt?klAmm-*W-zMNItD!7)F*t?*S{9S@`9MMPn2vD{|4@@7S&wc$jTCp=^f-~raxMkxrx@F4eQ51e{^X2*fu5$PydIz-LMVLF zXJcbnA}<;@6CBV4KJ_&{s%K}%EPXiATtUEg9lNPa#EpT79S0MDMbs_v@2FEodco8q;=mgxoaOdr;ie zsT@bBp(G22S%tC>!Lp5vpzKA+tUjmbWUmvpjK+M|laDA_^lMd|<#>Qf&2e?g0>93& zZNW)pf?l+NE`~{BB7}c{Th{nSo)#M^`P_8lQJOEJ z8th$#qLWmPPUa2t*vVfPNi0yZe|{eB4&q4Qt8l@g$LZZFo!B}v#}~2X^{n?DQ~#xt z&TUPPJrI)s#S+nKvWK`dq#v_JI`|k%R_&eWjG8ox;lgxF2F^(_1i>_}IcUb8RV6I2 zTE$29;9{qt2sdjnR%ThB*cm%HhAgpD9IM8tMQfMwA3YXzdIlhfl2?iByxCPLX3Sm-4S7`mMbYXl$pye8|gw~1Ls;zn*sEfPN$7DWs>!3Xst zNhJ=RK5SN$(fT-f-!AA}oWSH<`iqarpneNOiuW?q`uvG|ciStUcACHR!Xrv3Zya|V zd)VJ`{ayBs8}5ob?s|39CmOttA z6YY4%ZEG96{S&v_AAjGgc?PRa#6ODLGD42JwaiMY!AU;6Wn{ErlYb7`887&B{$ zI@|;>h(o@xXOz>6kAw-qtmFZTK49k}{z<|ZN~UTKF&dkmfQy>95g$;zRcTQu<&yt% zZ6NV8INcE37jhZ#55JnuO?Afpy}RZGqz4~)v~1-JV{R-cc!GYS1c(v;QHX^YWPVI= zChDAW;yw&c6cD9J$^S0(4&wjoFFM2EZ2I6e~%;yd}*w5F`hc z6OCp6vwVN_V=v>`iHv{s|Nd^f*w^P%h9b$4Y(DW(wBp|CUr5Bxr6HIt@&1jDG#4jGd+%C|K8pH zz{8KKUo~mQa)mF>Dwc(`34bNXCF}!xhw6_U+Aou0!n$BZzE2auuS&;Q(DWpT!dnyx zE6BbfIc0`Ig4U3A@VNYvC-_gl=IiZH5zF?L_uXJW@oRr(n~G(OWBz41*of${47tuZ za>#z*o1SY|JpUEO9X2tCe>Jwq_ie5gkKRyBe)IFhD>Wl-OXvqby2T^5%pHWUv|}CC@L#k-q85L zBy2q2NCiIR-ypiSL>!R17O!pIUhVq5aS@^u#Ip$0pE^?&p^hn$sT9+R9XgRUKVtqT z;-fYNpg{2z{~KF27THtdA60C&G(S0E=rL^>;%y4I5<#9s3^*rvsQ7EjS6&o<1u zs=C7{U`DA*;=gg=8UMjWEW!eV)mu!A_>V#I#^6}3#Xn7+=#%k}W=-ZtM*lW3h(u=j zxUH7)Z-ovuZXuX$3qD6Fsg)3E4_;RDh~xX^yRIxoVpRhzi!*v;YwR1z4 z7q~RN=PblM8R+!BDW4V<=-g$e6=uN|+P=|%0xH_^y|59as8Dol#KirFZAg)PWxo@dJztv(u8 zLRQq?mKERFl_Bw;jyrvH=HY$*|M{ki?1IN2lyR)DwbwrX@oN(L4Ew3KUK=;vaZG9g zivnfw6)Enc0AF+=c}4O+*qfesyF5^;Bl%1I4_n0ln25L;YkQG2_1x#S*@puIlMFL5 zYR2IuUyd=G5TPAoeN%cf&HpB3xQs9=H<)QXog(!3FXm(eVpx}i#Q*xj6Zh?jHL;8_ zxyUorM1r|IPBKBd+Ca)7rDVJjdQsO|?Ahf$?O1l@UWN~CjI0)`Ab*0uf8%l1$@}dU z&pK!R@8}mF@PGfOH`rURzGeQ3w5Q8uVn_dp<2g*$MW}T%^ohIW0YiPoG<&l^d7Y_m zRAv%Sk1f7q_Ts0WxhBAN&#&)&;1PS*CvIySJe-jc6a%tG$VX+y@TPpTLnrL9UwX|~ z+pGWWpP~!^`~q^k$X}}hdgG}0U%3`}N|KGJFlp+w!qP9h;PkO$IPWAv<;*R zr%+KfHgK-hUrdZ@@zS&SktmP)8EvsOaxgTAE~e`@c(`sQrOIBq{4?1_(# z>jZ|@g8s<2z0kh%@=NTojWoR5Bh%YiXFF; zq$#2&t9#~$n(VvR{21ht10Y86Pi~;|I~z9AxWb~u_yIy=L5J+wZ~#q?)eNhE1^Fnm zJufv`$1jt9>tfso+cvvdY{Wmz1Ql|iLk~OogNK;#qrFVIj<^zAiyfSzaKaJ_qf}`t zO(J^oh7bYiPe(h+OdLC2u^4Ai8z@urd)NV_iGd_Yf`~s7GV`jrS zK6MH=7-||tl@QVpvgV0aHO+{Us;(v?7)`m9;`z^U;=lB-2ONV0s3C6>;zS=3|GgEl zT$cv{H|}kMW;-Mbh^0|Nx|Q=9V{e=c`g0kX{2AttC1E3#x5U3F37uCy%lP+NdFqQ8(_-Z|~2L>bwyZT^!p^U(SM zZHXzVU;tyqM-G=6VcT4{Wg|4ho)R-$WrqWd|J-WwFhpI(KY1OA{{T`|Rf7nPvM>D9 zB#PODd5NrQgWnDe9w$&>%zsuD|0)l46eW<#c3@5XAYbv{rp-Koq7_v_zVA>S{?ZGM z`2YO(F8o`O%6d%K|Fgey-b^xU{O6=}=qwhqZ`#l5nv8$128?lRrN?1qtQ&Z2_)rY@ ztnEX6=deVZH$90i)4a<7OkrZ+RK}>{q?wVKhO8J%y<9|f&UuWWGGsXO@Co+w-}>~e zr1JFGfZOkRX#TrACW84FzV+$;M7=M%TOt2DF`K&E4tkRRk>M&odmx`K^NzQuGH@3L z6z_c-A)_56^`r8C<>V3nkti17g*V_xgdDT-3yFRWn`k|QGUm176Pf>=y3Mtw-U9XD zR@1Ghdc`tFZJCr9vGeenq+IpSgY96>;R^sj@NjnMHm`_l`CGv-J;D*w2tRS(ZsT0k zb5sG}%p48fz=mOF$Kx*l8;`TsB=b+b>Jt0j7hPcPS_r^iNfwWEsirj82bb)E$z(U8%QvYHSplA~Pn zG>)g7eUkm?H$S6Bj@5%~J4*Bnj|J}Mfb{-NFU#;xvW|)~)5LllySrX)S6upd|DXQB zr8fQdGwc7Ja?UBSc|$e&hPQv5A4~-Oum8mjHa2ps(*K>~rMokzNs5Y?X}>7uqXDC) zio7O-@)+hyJVZFl=3U!T!e^)16+6-oGoZ$;hY#$Xo_9zgY*|)}?qfh5&Mf`KOI*Qf z2mKIr&3If*>B-B}#jl$#k*iZ*>X*(fQLvF2H?l}!I@fTS{D*H1fjVA)$BUnCzxDrq z)$vK?0e_1$n3YUqI zn69=dgf@Zx#>K;*HUFd5Ea3)A^O^AC#us(xM1 zi(HbYGXtz(H;sSWBrG|u(Ce_mL??=zJSj1mv0xy;A3OfNcUy5Tsfprx7bsc-fq~}` z$#p~=C;n4yWsHh{X&LdaD#DvkT?FX8W&Bg>JfHnVPt;Xl%$u_3dxP<>BhSRT5jdhd zZ}KZPjZdRGCIih#9SyqZvd#a;HS@o_T_LW_Acb9CyQJ%&m?_qoGN*vVyEdMdJ^ znai?k7OJ@ut0w!rZ6Kf})Wf%RMUvrKUN$-$RcwzBtVE$!C=zY83JcxwFdQhetTSkX zGuLD`qVH@4Mcz39Z_vpJtK~+?pgs-Ba2aP&I=dzQra_jtv5M(jxJ8H5- zD;Q!$M$tw`^|AJKm&K)#qXuNv^@VxT#B}Q5zFm|hqVoI%B4R_kdZoAK*lE)p~7caf=RDa2ZN7}XD{+zSzzK0+6E3dgDcaQ{qA%Wl9 zc;M}+#Pkf$^(Uh~3!8>d1r?Rr7=Og8+b4tr+E&aK<d;DvQvJLxG?R!+qY*m?POdujAj-t20016X13h1D=kf|GFY_f;zJ;t%z6bb zfnhRf2x4b6+vzbq=HlP~`HlHmFs~e1`|1T}9I$vscLXvL&|`)pg51V(<9R;2U!yrtMl0geAl@XF*2oY!`S6fAtq|| zl0SD@q4pu^ym@@b*FMSK_3>Nn1E0D}+-SOVejem_Tp+CEn@unrJXIF11(p$3EoF>8 zis2`2L4R`@VAQKv4tjKq{Rh^8U>?Yu*Z%UZYmWLvpkH<4=i}b_nbJ%R(jGT>2jrO- zO3LS%{~e?PZC3DZqlU8uS?PVm$Pr3Vhg{VMB8oC`+df#9jJ78Ed>!k%?18aphy>`? z-sSzVJ^nL5Lpp5lWh{1ZO{jXcN6}m>zF|##}FqZ{<(8TEH^lssA9>h9&$VGQ3#*@ zm%tbR=Z)Hn%_9!S{4NN-#z`K#$iIchvX8?z1j3-vr;NLu+lc?VN^8cki*~I3kCLqf zNBp}K4;BAWqytq{fRu!06`4%(7z4*$0%nISK#{0D)H6)o9R+OlX|jGR1}o3+r`2$1gb@_P4e8M~4(B7T zSM1B{>wrminAOC`Qgrtvpg1%hH3`l}ed(mo4I|e#lvXyf(qbbdlM;sk+&AYdL(*Wz z^A>v{IRm8uJu!srHUY^B{vL24<0un_H-YC5SFxEaf@>#ZqPxvl6k+^l4b_98qJ{pr zxZH;1WhNNisTHAc7US#YCA@j<=rN8`^MRpF6A_19W=C9sxG!}U`9NP;pvlO#CS!=S zIZntni!_|WWGk=KAUdi>YH)QPVi@=z`Gl%1{AV$P-EY+qmXdsjnXo{`4d`JT{*OLf zcW$TuRsxFo(WS7RVHX&s?ZjcqXug0G(^VLE(}f5RnQr7Wq{k4$g!w=~|U$rd6xXYU!eA?;PJ%_|Mqw;&)Y%90JriTs%H}Wo*8-t0K@t>2m`Sq%NW_k?9-d!t7>*KS6KWC1i z?>B9-{WVd1XwL?ze8;he?Z^Mw z`~Pyye4QQ>xqRk9KARPBSS0eSf(ir0JBc+L?h~av6BlxUT(9`wG2dlZBg%VaIO$MYsi_*sX*(8C*x+AAI~{- z_qrb6w|Cd5HFW5b{|){!g4n9QbZ6dJba&eqAFvPIe3yUd(|64z^M}^|eQ^EyPp`Y( z{==W$Xs`d(_t_P{^zQkb9{=e1=i5Jg{&^CE+Pv0p$gf?>)CDlc;O8qZ;>+5aZMDTd ziOQY{75>W3*v6)w%}nQ^rOOysC+=)q4|j3fsNWaIPk-BU){6nVN)>#@{q$Qji0$pi z9RI7VCT8Ep(m>r4AW+MfO&mi;%vWC6h(Fs!h|pMU3Z47B93qtM)4YXQAl4t?7nCB%J!{EMKHfn^X-VnPx0}tEJ{q}p;gzJZF+F;td<*+c|)0!61~~gD&F-zUi_yl!++* zx!-!vnyh}%Ga<#%yN=nL-uiy~U)SgL_>Px6b0WmWKtTps;@us#YHr5bV_tDRw11zA z#?qTz;yi^0^JvFo40gTw*i~Pr24}GEe*}GnlU0wP-pd-GyW-xX%X$V&zt^mPdbT%pq0*)p?xm0rXmZsru8#7B z=)qtKqL3?{xAM+Tuq~NHCxmzovWbRQO~a|c@S1vt*g3B+Z^YPhe69rs>yI#*AOd|| zu{Yb+A+KB`hY=Gc=c){f(S^78U&O)EIM4rPo5f;Nsyf`cGm70NbW9+6fP9+z=Qo8C+vEv|#t6t;Q~;c7+ub&66( zm}lo5aH3x$n47*e+W-r6YFkhLOZ#d3kERk>q(EQ9P2xv$lDyYw-!K6`Uo1L{-eEJ= zv#N2aaiA9}s04-}z(h=zvy-SOPTv3~26Rr~81bJS#Pnlc20f%faR&+n>Q9D)NIdHv{@9*o!j>ig|KzxUJap6`3ng}IB` z2mqXdQA4$TH0@KleG%rg95%n34A~9oNBNS_KT1A>pz&0(A8+8+i0lePGXwiGW>Qtl z6DzlPx*lhra=>2ycb|&4GXKi(EdO01pbdWv(JRi^3$MkL_L-vtnsP~&>YOV!1`(MX zF_+_hh=eD1i2fT+iVsgMkiH#vD^r z4%YFa+_TJS>C|~yq~MBIl>~fQh}s8kxYfSx-~6uq`nx}FTaUbN1T4<1K$UIIVX{V> zE`9wsJ-0RW#y|W}+7aq7j-dg2DD z{l>RmW$^DR1c$8CPUa6>e+#dl9?7xpKk5C%;-CNv1%(w>%QZgieB%B+tf}N9BUo-| z(X!^nHwUw)u*Iwxz7e>E$v$H^F;q^9z$4);;@@*KNr8r8KHSIN(-DlYHU3Nfx;KG$ zn@W?2^)_vATWU_tXCT6AKrOyhzqC=se_E#|K^B-Gl#;*?vmx{uwIfpa4KG{d9WK-z z*fX{!_eE%8an-2icf(G0bt)+z$<0?H&05Ku6Ez#b-s$fWqKpNXW!fQB!0GZf+rv*Nonr+>jDpncv37h-Lg|D~x}a>erfpln4#u zgCGe#oHcZi8}mcPKQ47P5|v62Y)e5T|9j?QB|)skS}cW@V9YYe;g^s#^-~UALz4Kn zP}~XOZ&`TdvAgXj7+KKSA3`N`h`{Ov?7R2kHIkUCuZYev6j)^9&lLd3o3pI3N*kKU zN(P2N`G2g856H_zoU%lSLDf!qUG{3Um9=P2*Nswup}HAzvw{sH`JlbAupLANzoh{@ zPZ{P?VTWI`O}$v8>%*Jy$P6EL^H81A#%#NyF(jn(M1BW<=m!i`QNzJeILtDA+W~+M z8;;&s$wT)!Xp}ZRLC?Mp;m_ksS{ypEwRqb6eZ_JB%n{~f{z{{C```;^xX2(h-}du^dU2= zio;5JRskaLT{eVjoQ0RewDhPJ{vox4cuv#;PrzX`8;*9uX>(XMTsb9Kq)8Jga>Gx^ zM5}D_IyID}LFqe@bNHj!SP42A82xI{ILaJk!JnWh*x~sF+wl`3UJ9yl54i(+*$Dy@ zNvT}iN%9DOO-eH#m~R<0S)B}db8cvbzoU`8s|C2}Q2dOL+tG` zE<170E`QY}XV{ZYJ77;dGJY)T*wp4d57~P^{l)l`Yd`NT`a|MB;p*=`91zBawaqg7V! ziYH#SF+byQf8OICuZd-}H_EQ4OfGnP^)2_rM?QBC9CLnrM$3s|Re@xVo}Q=sto1m* z_DM(P=Q&T0SeZV#Z9R?~KYyRS{S&v(f2nhqxEFi8?gdZqGY;+JaDMLX*PHq%@C9N| zr1v*I{Y-+ydv3bR-gD!f%>UE5XFYy>&C||A6ZS_Rzs;`x>=%7{e8S&1K&wBjH_H`GWX3zerlYM%$!t}xIUwY7P{o;fEM<2h{uKt@Z(h#OL zVT|W6GIt$Xle~Zb(#P9{k2}#WIAf3l#~%E$-L`J?FK+mJ{NcxrR*eAP%>1u-oiSGN zKPYw91I~oGF8X%OVTU=LTay^(fO+O~qff0MhW`LY665E<8rQ6EoW6!1(JG3B%aQ*h z%Wt&r%P`A;sbW?gOAvsee#a@y$^rZfcb!Z)Kk+qpM2(F`}VJSBFFWopSaE5 z{mI+>(7LVZ{ENm9^Ua_A{98Y6?_PgC9p88PlMO#iM-qH`y(Vp@XDzD|e(JZcW`V$Z zXM7Zz&NZ)DY$((2S&!*(_EnF>xYI`ZiJXjS0@!93C$2EZI-ZayRJEEN561C3Np4k9WQzM+4kb6pEJLH-V;x2J^$mE zJ=Jfy`|-T?4R8O1-E#N+32A1RKjZBAKU{F-RiCyG-1PaxR<|F!;+bn*??tMzpMA@R z=VvjGg3iUlb8G~rsz37&pJyuM&tCbV**~PnNjnT%zUJ$nvL5%z>;F!XvEOI!yylj8 z%lkj&oW=;}n|VL6tjC;5{L>~vRqxrgYn>lf>$+nn0f-miTTfC4t41sSS?7CUekPfb ziPlZ+-LpFhr;7jS?T*HOB*UFk8LOu}tbKd0{phzo54moZ>1TiY{c-HUhf?P@??lE# zCduVll%ILc*9mDC_OIUj7nnxOiD}xU{H8y=I^O*5YZiKK!?mT3v-FcWuq+(OwCkdC zj%*OSZ~5!%hC#q+P{Bh#AGrSL{NJTd9?w^v#((LBXU~t#s19&b)lYDcNqP9D#O2R? zLL17Pl2pbR2X#qYm|LB$`43M%hxbg6#IQg30DYA;QX>GMx-6GObtrwOo$IsR=jY}C z1Zp5*#1Tv@;D1F0d49|ZkV(-YoEkFM`pwF@(i@@QNU}EP$Y6%V#`wp5#K~6dRQ?~a zgZMWqa15)zCGXsiXR?av=eFj@3XMAlV4|6!tKd}KnbQj4>AOV?mml*v0z0}hsp|w{ z?c`*q#Xn5UDvP{hmzC}mND1_HrU1+>Enk0S7c^w{Lq;grnGGt zu#j&EJv~Zi#U|AYdi<-SMd^5c${Zdg9nBG_%8~L-Z^!%+1cztwhHJdKO%BFZ*+a808%pfn?vAP#>0nVwB|2-JpQXMm-=mo3*fIIBQB@)CgghHM!zXR=4TDC^cy=Zv zY2u#Tp#eYS-oaN~U4wDt)ez^QlFG3|KWPbrI9xIx8sATY`vZ~|%%cz}^9^T|U z2a*%I;AbgKM2$;g$<>LP&g&8oeuaOq``ia5#rHW;0i-to-hKMo_-c?H)U~CtDha5B zK7zW`S5~xkfGlLffKh_ppG4bYwS>*3K-8Tx!Hic>>vHnyW%jIMx?Gk^MvIeb8 zqC7@D}!EJz0HpdsTCqE^<^7V%#N1B+2= zLrB`4yq;8k)hmvm35$m3(W*0t$yrdd7ig?69u+Z2lCZ}=C04sG2$_OLhh(mXa9%dv~vdkV#@u z<00V}qKb;L+oAeroN;1{q3M~*@4TUZ6@B0W?YR;3(~jl0TyuwA@r=ju-1E;nIo8Co z*k;`Q(kIt*nLm1P@A|&m{Z(s1`FmgRRkl3Vgs{Efyp!!ao_mh}yTAS$`|F#((BmBo zS+h*_(RTpQKrg>udbWSdy3P3q$mBR<{oj+;ZGO%9r}%eVdba)g2X3)Hx%STTyMm%w ztCy_F@in>3`zK;~BAS2d8!y~!drbsSpMC2y&$Kta=QH*@AGwtdGvGLF9Q7T0Ddbqh z*>MQDvkspSAHC%sVgr~THOUmS_dWQC|MTCu2Bq4lQWo)#TrkDcGuJZz=*uoNeU>wh z>D;r{A?Ax#J@t-~n6`y(1{xz|D z2Cu(uP0qjPhKUp_lHkn4`;|Oi6X#!w`yTqT|I$Br*8Cjl;~gLr&RX~J<1fF+p7m8H z+ZLU!&zrsc;xlJL_=o<>)p6SwA8;a^COP5wzWZyRXs^EXT#%M^tcQN#83*m_o_v~r z_Y2Rr|MZ@l?GLZHRdEbH;R~{Fbfc$cEZ@nMJznPf_pSWC2OkZS`ZbHPVQObN!=j(N zUbtq4v{(7xnEBlH?(VEHyU$hAD3PsDSELmDUbZptIrBfTvOd$Id`%+XXwQ9J;l)2% z5X+d*p(cCId8hhMeakbaAO73u_w17o%zs~W(V70eFTTKj;SWDye|qh0V}T}1AZU6b zg1`CM=kne)VQSaidXN3P|JU=`4h|5=liDv`lctxRe`MM9e9bGL)A4O0ma|qwxrU%Z zb%X3rWUwt}`Dbr_pZ&`BzL4*K>9t>NFaO!M$31Iu)pb(3(Y_v0rOrrij^F=2=hXfF z)33hNE_>2x8+T2+q%S)Af)M_?ElxOPGxHy(h2lJ&&Ki|EAAJB(Xdl6Va>pUw6wF?ahCFJxeA-!N?RF>+2t9 zuX^73yk{ba?|tCQ5yE|W+~UCGft9+8x=<7G=4cZA}NsNuAi`8fQ`sS zZ_r?|i0G8q+81SpSQGhs&Z!6OvI`5NuYB(f{(&2BXSq-XYp~Y4{E{cc6<>WJySeIy z+pOk&;aA;otNp8A|MO{=u$$zLhz*@tpW~sx3~OW-znM@3`g5P$pWpnhk9?YSH_9~^ zx$C-{Ni0vti=TPE63eq9cM_ZcxmEmD&HLg@&Tsu+b^Wc>StD=QuKBcMdHOLyJQI2% zmJc1+yC&fu8iZHo&a`1VO{IOdZ_tO)o2ExCO$!1u(Xo?$=Q)}1;ts7QBsw7n$x;;o z0h$C%e(ZFo+WgWM4m_5LC7n5}7qgC>7ezx2*9-)QsRI|7S`{KiY_YwWuZn_PCRWH> zc0n^<1HenE@90oII7tSXv!x;j8&=eSaqkcqX%DXMRwk#0+XNsiS-4ysPC_YHie2nz z%LCms21b-9HEkpbSf4K9KlMQc$Xtk|u8!J}B^SAime6VEbi=AlCBmlvq>G5(1$--{ z2$BJa$;Aw*^qeo2c%z@4TqNkk_8giXOyxxrsy;9#_yel9vQboQNsNHNHt}UN*yAq| zF$v9D_dx!i;(v!u85IaUCe>xwQVKizZRZ^)r{2u>hVQ~i1M#UXoF~-=>+bgo~Y-Q312egE?W#FuTCIDn8{qJcpC9chm9QXv3-KuDApgZ zR%3yu_SP6CCwRmKG@FhCly8}$X;v@=q)cDJaCtFWBD})bzVsV;s{puY5G48ve(CxD zRgF)S*^`y@i84O@VXOk?$UOuEfTt8H2#ysT8CM88c^{Nx$nMB$s@jsH^eee>?6z&r zZ(H&S!p^JR&`}yH&H3bN6*an^1iZr$CZAcUj+faurb8q#$FLN&#_Yr!}mgqh{i%fzJ+fNq#P`+r&D7W7vu{hZn?W#tHR%w9xylj(!~$(y<<%(Oa3>~E^Igo!@P9&zTEMN;{{JR zS&_rGQB~8K=Re_;t)#LZXB^sVKk>2)?4?5TivEBbvyOlEl^3mv<#RTO-_17n**|~r z6YV=MJE!o)m+7I)ye5xh8>zfJe&B^qu&;UIsS|}p!wwVV}HN+_b=W`Dld<3eA?sI*FIxS^zNJUzb*2= zEo(Lz=YaVQ{Mq6WhPaA=<`&19hxYl;yy_X-N#%u(FMQlV`<3sybStU6(e6nn*nj-4 zOZ|d1G0ZiTl>*TCk-2~S51;Md^TP8sN#(_H*1Ela`Atu?@A=yE-829Daq@qJDYcvD zCZ8Pf?~?!b@VV;IU<@m;0BJ(!%^$a zUg46%lo|6F&tk4cu8E+Xb`#@sjsNd`@rCxw-#rn(`|T?o6FK|~-+t+uJpL+^NQ&rW zU^}*v$}*nqwbNrB%x172GDng?DvM_Seths#ciL~f=O(_NboA5T_MGxH!z48Pv7~X% zkaND^gH-;lfA*5Cr1G}o2VeHIiC`9n0{^)EZI4Wl+k<}y=gcPSOWyFu{qYF7yP4g~ zIu^s>3L%xJYN7wp4ynna<*B|+Yt)%kuIQ!HS?PtFI`D+sTVj0Me8~$f5 z67YgJzFwyDJHBW4E=lP!`$r{=s2oRYA&i4Tkyv;$<}tlb@`hLkJPcXBkzp;XvWx4#~$G6Yl^1kawUn%w*|M0^zshsXVst_~tEh=N& zb{`LY=5a#sJiwt6kIR-DACrY&{pAg8EP4yF=C`g}s>ron_yXCO@xi6ahaj76qD&?YQx; zhdcP(atSII)v~X0#KInrPOLE%!vc%=_x!*2%Q(yo|82gsA+^Ro>@on5qZI#AWZ6iP zAu%Va9`WCMo_8$gfW6d)#E1N1IXOujfy9tGeMgaCK30xrEM%j)qchuxn$?)b3sPE6 zn!Oes(34l94ge*bxrvd(3dn&xHV-Iw^KmFOapt1eJo&B3HOX;Pxn&Ygxl`24#8|}w z>lxfqjsiEA`;GRN)hTK>3V*_?FoZUlQ%>-Ql~VrG4cVn)gH!UE^_G+ z;R5sv-`%Ow%PeHq>;_;_znRx^thpKpj?c@`Layf63{G6;MlRltvxX9Shq**9P7h!_ zB{%|AXu~9>DWk!z%{S*^?Fa-yTxmYr5ZhFSv&d9$=!Aay>0Hv`Am#?e}t086iMxdWn;zasI z+Pdf)VujaOq+HSU$71El@TWRsIZrgPzU^8ekvQ#CW&oz;zu1+I*u?}j?k?yw7gC=i&Jg4=*_Xl(q|bBB75x^r&6=(c2ap4_h8Tcg0hEB9-TMue-}W zb?1GtCaC?Aa}KqBr{hO1f1Ce(J5) z&Og?Nl6UE!F8SYDZF=@A>Y%>RpHI7`p}*7EXC zXPtZ?{`WNrtOWEV^V_buEpGVyu{n+=;`!??Je}=L*Z$A1y4b$^S3h9K#@FK8a^~yS zgz~c=UnKSP=!-wP=2pA$j{D;1mmZkOCd)lEqJ%d?~`9}didAnVI z`#r-SPTFtZclm{l9RBAof7z|3T}#NKay&bhpAx^{Z>#Wd*2U#3TFL{9F1 z`CZq?@1K0aJdPjvrf1lpTzr`B`T0Nmcvx&B+tN;%sl%W}rYi2#@hw3%oqy9iud^4= zkEs|kzW8Zp&5y-LA)u-+RCmHYh_)$Olg|Sd}#br;h%br*}jHg}B(~j_Y zEHQql&(g(hi4Vq7hq&;`qhGXXclP1^L(a=Cc-*|>eAyK zu=C|L^{Fu`HoEQJJ#r~77%k+aa9m$Fk_`tN9%YwvZdmaj$tkQ>t2x#k%f~3;@Xz25 z>I3AKBp5~w9R7RnyUAYv@@K7WFn*`uisxToKl?lHGt?rDoK5U|@!~NM@BZlDu;fD$ zT%<_kjtw7nWgiB5aqZ{sGL_@(Bgp-%ulU)d z-W|@ujC1Zo`}elKkKTQ+l?iA3b3g)KK(cE;cc;Hn?mhdo!}KnKC~Cv33A~`bx=9zs z9lLk!(vcTLleFfXgGdPuYJA}I8#Ck~DXKX!92f5dzxrL8VapmD1qd0?i@Jb;MjbTB z47w9$!}vH-sN~(!_kujQV^?JEV2m;U5dC=RL$5U}*eU*xs$mS1gp4TN*A(BHBf^h4 zo1=21N+7XeMqQ*G4J2`h8H^;83&kk&7L7MYQMnUb;hV*$Eo&U<3Au5X(nZTeAP0&X zGgDHr6Lq2SUk3f1HE~mQ(MeX4L&LYYh~kDAE5{9u_u&Hv!nuB5r|iz z5FEIVlS#oks~|R#7!#tK;jt>VJm{FsZz#7h@mP_&p8AZ+pI%^?&dBn_YC;(7OCu*t zQ5u{ddtxP81Uh0bgTz<0<)HM9paABS&Xj$y8Zcm~JBlGQ48v;tTa6-;on@R>f4T7E zFjm^#4L>89QyK4ODbjWU$P9Sg3LEO;GY35zCkihEPToPd@Ml%^opC2cCqTxa9C3#Q zKlneFn|Lj}q5NcY<GIedlKh=qk3yEgbnVzZq{3jIgcE*}q{?vnCPRSP|v#}F-I^MA+l>gm(Kf5Mu zA2k^GPj0x|e&d5j{olOeB3?Ji`aitreEYFKxQ>2?oHRXRV|t_pj_LW#KlXc{oS%JM z`ZfEjo4+tUQp0}o8;gjV$mKt|?(?JnQoY%Ry!-4=uKm2d>95wZPGpp2L2{MZt1day zUjM=;@Y;!Vx?oKPe`HNAkG{hTe32_*GcCP`>8AUB_v%~iTb@-U=)*EjC=jEC0*=?YLk~22TX>zq<0{)3cTZ zQE~l<^?&l>CpA*}#ygJLzr6Be(<3j~h%qO^wC@GhIL;*^pf(gfBKRq+h44G z{MbW}h)t@Ls1VouKYB(mj!)NxU+zvomg%aW>ntm?$Tm4e+vKCI$eL9DL@KY6k>ZL} zVc^O`W{A*DE_B*5lZ;wt31|ZiXa5>Gfc~KWGBICw+dX=_oi*)9j#?m_zCHL;-*QR2 z<~RTPX8VP=eG)Zjt`VC3!PTFecQrrv{CaNlL>m7ee|7T$i2DIjc})(_*H%4^agITK z@a8-HgEl_<{=>KYZWU z^4#nH?nP??{MPxo$7A@h1<^JSB*AItFNo^tIC}T}_C3G+7k0~WCysF zd+%QpzE|D6?(@mK=JIEpV{iGurz<;U9-V@2dbGy0!G5xj|9n4RIod~ffJ}=qhugt70@?&XHnXwvjC&q<$glg{-FzIzM4Dc9 z!I}2{8*eM*%3~7i@=MN(H3`jgZ+YJh^CLBCC=6Nib}o+Z!e9dm93i_OFFl=g>Y?`j z+RxsZGG-P*EuN*{!1-Z<>3Pg}KJzr*Y4`EH_dld{9myEzG0)G(nv8DPxF(BBMVZ1e ztIrjoh8|Bj_p}iatoPtY4l%aZ|7IrBEL-i$-t&u35uN5i%n5NS{y0G0qKfD? zhlTeyLX|Af`okS7V08_g^lo}*vVg&YwAvXRq>noCtH|Js@n;V6ihr<76;URJ@uk`f z1jCR8;!$@wVP+zv;A)Msud6-Wy6^6Y&Uh~_u42-P>d^R)HXmUbFT*I)*z~Y%A>nAf z2$Edll16^8=5QQXmHy2AwjgA^DN)V)N7#(Mmtf#8K^OQ&+3NSB`@ z4j_lDqcKcHb!oKKW5z$O->iwFI{|c%6;3Gs7x|3np_2?;P*dvqJ^y>@J3k{)EAc;` zVz8R43}{nADG0c*yE>KV+N=>qfk6X%-0^4##^xwF9NsS;2STsfoA1G75{o;rBftz& zS0*c7lb?{x;!ybbz{MnGp1B7HUdSaLtWZNrbBrnVP@#{%HL0A7n)$I9&`(Mkj#BN2J6D?ZCuv(cfJ6&5`l{xVuKeDy9XxeEPMWj#J(C^UnIfErZCu(7jL z$-=WDWssd|*V3B7&%G>Cvng&FwrI1#@~MF&l%+t6M7XDbAl%?*e3LNQv;@pbgb3fzPE@P}{AMhU)vkpoyYHY?lZ-S*?y7qg zISjgX@eT1S!z7OQF$=wGm*8AT$8=WX3&@wgCcrflyG?-;v1}RtfRcgZoD~fWsbqs* zW|JIi#H`u*M-Dh~&%GN<`uwFo`;6WH(ERfVf$fmftJ{w~96$cnYa8J^J@@!YQ@d2+ zi2wGOjP>zjzkjXWw!WWso{q%u=?4L)=PTowb~3;0DW{t?pR)~lCzARX-hFe-q_P{= zD<)aq^3mI-=QX$MU+~0Jb1^`CeFX660{J&2{tcCi*&E;UY5U!e+`1IQrspF6i@$q; z{qjG0mi_wco@+n)(hKZm7ddI?oQrQ+J8dwtZqc5hN z%{Zo=&Hv;2o{0>eTc&I=pZg!zg!8cnYkYriex`G)3F6x>?L_=P`OOc{_cE^(@Y`=) z^;!Fm@41=RPP?i9-X&)(#iegJ^FNi4>tzUTYQ(1>@Qcdsy}{WjdnahySBPCJK}~nV zj^|zO+2w9RDz}_D@@oOre9meLul1vi3~S3H5{GhOG_#>$F)wo(`iW_`w;uBj+LcLR z5&rMreZ!hao}QU}`@Ea^7vJ_tsmr~lq3id*{O;>pdrv;|B*{Chdo~V`%4V+f=2#4k z`xmw!UItC|=V`I9^#T%Y+je3Yy8FP*ciON2<;Ej1Xo=%Vgf`HB&g=cEn?7$p@qd1B zP0)U3B8Ba{fBDa6QrUt#Al-69#~a>$?fgt<98Wp>B<6&ual6!K(m7%$1x3Jt2;I2c zQycm3`t7@~Iohrnq_Agd@D?jqJny`A?V5l#Tlnc~zW&MW{p;TF?pPD+*;dD;H~-o7 z_J+4z!}k-(c*Vq=i&E3rw&jpgp|v}|-aS9|#tp^2lDQmHXfIhLm~kGh@y|Ll=ZJfD z?Mi|ti8$8In1|)`fQul3sfdhcT=T}aUETC@`6Z7xR~Htt_wq}=swrdIt(?gxupxs} z6XZ&Z<3<$|W@HA-DaGu6IZYn&u4*jn2RVxg5=;XY5*)0^v#@j|t8paEgM)#(2!Q;@l>tdV)%YLdj>?N!4Ci}E zqFyCy2O{6{QqpS;zX>-wGtSqOOs{xy^G-(e`X3~jQ%8ASBPt~RC7Nu3m`>!hq&lGI z`J}H_ExokcbpeHmPV9$t+7;xv$4V#_%w5JSPaa4>GmUp4%iQjNo@h6^TI{CD6^6%0-&xT9DnThYgK~wXZG^xemE@8|E zNuqKbd0kFWT}%9o1&0u=zZ8M?mdQZ0aT}j$TdwMaAafzVox7Ur>YW|u*f_rG%SBhV zB$xwVuk&G36K5qU9yR|IVwBdQk5x735_qnp?Cd+(aj!nW_>Tkwml2}PaTjDaLY2z} zxC+c@R4ZP%*fH0vk+=&119~pQn^|c5o5cSHi5s;&wwm-4*DO-M%+iw~f@6HvD>4WH zKONAP#I)*We6s5Cug7nE@F?1D@jpg15t|R&J8rnMb$!WMhltJ7-!l*GYmcJ%lk4uZ z+t*|w$;(v{M)1ii*F^ArLYBVZ{F8|d(9crVU%%>>p-Z`F{x`GEw3}IvGY;+>c5;E3 z1vI$6S;qhR-#7gEr|o}z$Bi>Ny6u>D6u<0gkDH0+E5HA%?O(j~LVMid6NqxHgY?aB zeb(8njW_=J&27ve9UWxkW@gH4t+x%FK=|2$Ak@eA8hfi?qXr7Mg z@fWxT`JdT4z38_-_}Ngh`q|TSp4*6=D_0{*u!$%6W@5J?GFTm<5!q#AlDbUh*oJvi zY%p|#Bpz*r0#Uv<$^X{u#S<&vIF00Hx}dY=h#BkMIAL+kpKQ>lM@{H4?;c)Xw-eax zVDZ7v+-?8)y`Q#!@tYs8Z-3)^nEz)o-8tB~pG~5AcjY4Aj!{Ryc)$H0fBk78+uBGt z>#CCJxC8g&yv{Q*SSulz-M-QhnIA2F{trH8*R4rl9Mg{pPLIT>;$iieEpq(pK}@@N zuUwPLKk-{1vRD7oyX@94JYbwpxJP+}$Fw8+*n>qZ%T8yn+R%=R5%NaxUuuzd`Dmzu z&g1Lh8n{ zKr)va8mB5n$p}Q|74y`!pS#=dd7$$D70OC#ZFNmnooHi4a9oiv7QVP0(=OnFlUXOEdxgwrIB%M-e|STbZT{hqf24K6 z(thc*1KR6(Y#c)i9k=>$Ll4vu1U8+^ih_(jlJ#vl)pT+v&Ay8AnWT}+C!&uV5>}lP z;*@SxS8OB&ZVe0iZuTSvNudm%S;T)AHG4*l$X%?| zcd1C?-<*Nu(vEd0y>glYjge$E;n7PATwcKS936%3@sAuv0dgMfwOEDV5myfY^xq=> z>qN$=tEHd-hy#2qy&@U7OVENSbc~5j+qU?}`4LY$B%+L?NB++=5rsXqD-QS@P2GzC zPvNI0BCM+U)PzhWQ>W2fcupgg*c=mN+G~g{n?b74(mdLL!@$+hEib1LnxB~#LNrmX zQZJ6~@JQ;VFovxs0fM2C+@aW`W6P;oGG^5!F{kY7inb7*yKz$khFy$_ll(j&>vUcH z02d03$2d}#Rz8%N>Xi>>Q3D_|f@)04pz&Hig7a3VNyZpEN-SMMMbIfN+v@>64@nmF zNgjvBA1=*jGdfxL3|JsKCzUI&VC*tQv&PVGkq?aefQ~R}EnoB~M{EF{#Jf5$UX#3> zcH8@ym^oxFoN(i`v&c*E_V5J=TS3yVjV(L-=Fe9$A@oHojTdHC=_yL5ro&ZoZ%L4g zSwT%N;@@EiX9@#4!9RQv|F}it(WyVvF}j)6?88lB+MLThwHVIy%SAtle?nm41mhYD zC9)$qN0W`LM|W#3;{WZ}em-9NYagBo=D)n@Zqwbv%VTDo~L}H{7|6N5fK&R-@m-+uGY`A>$z^J09+m;-B1m8Q46;KgmfOkIPuz9D_fD6w!WXBB?1|$|b-H?xxtgeZJ$$Mv`7Go3@fEropNGV7Wz3pf8tP-4tDxOQ-V_02M4r88gS z#|3S4KJNL+|N7zina(&~|B{RBDQ6*8!;dG)kiB%Z0D3`!@Ff{M{m9=zc^31yy*YvS z{WcM59*WOV&&6>xi3JHuO#j_A0gPj^>GU`ZU=7+>6V9%W!MO6OPaB^7oPGLb7o5@h zdCU86mOfpetjg4Bw`)EoWArmUo4E?*sQN5xvW+pZr0}ga@(O6g`oIP<7Qseb+rT&A zIMuU3PPo9$9NwXXAEr{H=H{A7^aRE*oAow5`s4TBcO%=Fc5YvK;aSuxh|K8`8HeTh z!dG2?D?~%F457s5%rM8Y$2`0v5%Pbl^juqQN94umf5@H~IV)*w%-9-46|;=#w6yz{ zInh#rEM*r6geKF6GS4iL;Lw4+ri%oH8`Mi%6vJX;mCU7M0=@Vle9b6S^eP4uP)QOX zE4=g|b-1>iFFKH;<@~$K=Dg`K=Y&PVqMrasVJ-eWXP$AK0>oX|(JlR%$!-_RYF+w7 zqD;||9qjOsO|5LLJ-$A$J#k2nnF^zX3czZ_>>&#^9?!pyhA zoYNp^j^mT*yW7Gx$SCI9n~n19g^mny>CHDrezG(NLsD_q8i3V>T5N~}!G0iSBO9_^ z@+;%27XMYhZN|TCi~nfKflMv7GbVtii}+7JX8bcIsgR~Jc8%pGqv&A#cjuY9m}PG^ ziwRd$HkzA?PTw#WgX~Th8AEWxYCsGr=SD$)_uv$@C8N`LrlH#cLdl{$WXI#UMnK$> z7gT~KtdbYVoB2W#jL%c+O%Lu4)4lL*Jc0k%JtX}X$&*773Qqw9n)TsDy_4DJElrTc~SrJf6~ zPkAES)i~v76TG7ehRh97gc(ib5?0U*>^4_Vu^byku!Zj!?I;9cw3~LS|KL}p+ujts zF7^+Te#B3dx^|h`)5fmE+@}C9`Vc^ z7vfQA89W!1kboaq9C5z6pcUi6hz4W&Lb;_b!`RCvw2D&&rtrg z_x_Cu&iX{4>v7YaMXuBPxR<8l|E4<^KPGtkLHo)F)xtW%tn!9$Ud{T0x;matjRiru zcIr@xGD}s=_g#1E zm+Xyya;^R7H(xw|GLfv)BQak6Z{Hmv^KqN8tT{0G=Wd|&$7h{%z@B=}$#&MM2ke}+ z9?w4IL_2%^`l7Q>+S*)I0c5t0f6#rI*SQ0H%f%AJqvh$59sl?np3W;?b=i4q;`lS6 zSpBNSV=&(JvCkQ74(8yTQ@ejm1ogZF8T|zZ#ysKPePEE+quK6HRsTcw`fOD-&6aF6 z$G>O&4`Jqw4y-N+upu=k<(7ufo}oR(n&F{=Dj--?C=qG2m*t|&WUF_5^l$7tU-UF~ z^^%JpZy&hfw&7MO8+J0|c+2~5Fl)sLN_S)4W6it;Q(813cDzc!(Q-7E!msr>bO4XC zKhBt{>#rNaHJjnF&q}5jMOIj2jBE5cTBCsCqbN9{YD|H$QRZXhiqK&)vYK@?-kC`+l`D%r$u94X!sD2bD zXnX4#OtV6+QeYUkuc)Xo44n0wS7L>~C?GBs(|S)3$ZSe@8wLOkQH8#97>?Cq#J~FZ z5J8mO^-Wh<7zt{4l&yn%$$JNIdTe7ibvtkhwEY z=*2`z0vPGjSYQF~qbA!z*lr}|FoAhfk`5QNlt3_IJ9Ab{at0@8nJmCvCdi6Ov|&?Y z;sX{7F|ZtJC@IT(Mnh>b7d%)DHMPKTviPSliGV3fI=Lepb8tW&qqCMeaSMu9cz1GJ zwg}EJA>J|=^(*l3c1gg59%nTLqH6R%bcl=qTQFZJ!8T-Yd0QlH2eOng-#}ik39Q$U zM&7PXTAOKz%8nd>SO|4c>OUD9X=|r(ga|KRPNIdV7M~hQ79xsc4{=c|fjU{8rJ$l} z76!!7wm;^q8NG>=xosO+R!0sNrN$(WB&@;(vYJX3VSH`*yYW`Xhe-Eyo#$_D;_f-jI_= z5$;(63{;`-##iW|VOO?=Y62t#PZk@+?u%X7XRKjvILN@{F^_^R54u zM_>`!%Gn^@ROmSqMnvRm%H&!*=>U-qQ&h@NTJ@ZtTteZ44<`F|#f zDZsSD_?;iSg*L~K^#=>5<28ThDfSr0apQm5v3u_Wk5o;BLT@NUYA?31U_d+``SK3R zZKrP|2|I1(Afvq#uW+N!cM$5?0kb4v}Bz()lSKWBq{Ai1_ zPaO+;S3Lg$``O=le`s}uANU(KIA&K}f16pMv5hHfjwlhx#=Ng|csyfx)2C%+T1aD( zU)Sv(z3X1rAK>$3)MSw-+huO&Eb`F)eNB#Arbk&=S;Jwge2?*S>~|e&W0{}P9Oc{E z*nnv_R8nUhIn?f*cFgxZ4a4YFxZ9{xqT({>2-(h@TORf9UU_Hnbt9kP=4=3jPg4kd zW$`uzuee}c4$=s2J}%xV0>sjjx!hdor-7^BwZV)HNRU*m*31g?Qcy=0H7kxHs{N?_ zSXkxFrga!jdjs+RliM#2qa%D3`k!qc$Vn|Yg`D9%}wUZ zt%%!N$1!(NX$1~>MUjL69KZ}$=;-T&1WWynACr5G_?OSpRVx1B241uBVirt@LyiQ& z?gC)&R-B8WuW(>gcePkb2oo@<$R=X`ze;~()(jJ!3_BKy%-HjuN{0N)_-BHtoe=I` zaR?`-Nt&qBqs2OnhFGx8Eg+4-4puw}ucjh;IRXdH5y%1{WThCAdzS~h4UoQD;@>L% zo2Y?ktJsSEw_L!a6&R<9Afnb{1$8gu@Txv(J8IX)cQzmn>i@iwVu%iDG(dt|VKzLj zYFnhh>F=$s=Cpcs%{o(MN4-A4c;WXC`Cqx586MCCX5` zi%65vw?nQ<9i)kqRLCKY%$1EeQ6@85;5^1Cq)d+9DQ6Q}2;4fI6FS^qahzD6Yc8`E z2CzVn^GVWhs7#ICRz!^Z0s=^SW$e^f_`MYBs`u=z!o9#nM(XMY`FZ-RdlCO6Yg37} zjIq_Ji3m<&LSg`p;<0u(>lm~2Mf?*=9OI&VzJ(xj z!Gu({=y`lCdJL6DEBTv7C6q^FVT@lTMN+MJMm1f3i34fj=(8jb%;-xo6`M9B==`=j}&+_nNp#9&0fjuYKNEwZYAg=aA#r!(TSZFO42gT~z*& z<6tMKVZ?sOeZI>0_eK0KwIv|$+blr<^JXkJluz4kLFt~5hPvs@?WH~ebrCk#OW1~hAe9ym?`_>;mI_7R8?_lPx^+gPS zC&BD^+?Fi^=eS`sf5>qFbOmn;_hTZ7^|=1Fdky0sCW6AxOo||%@GC^V9v;a zyZK|n$`*YhxFWex#+TpwKz~m1Sx4|ltx*7ylNqPxe=%b?`$#>0YqYaO57fXxRk^JU z`agF6Lv0`j59}K#7z+JX8%Sh4=NviI?mc?fJvn5Tskv&d?C+9$#_ze6=#TEq0V zoN^q&*lG|op2k(?4mo9zpFlQS)b`64vt1U%0v)0}L-kOXl{&J!2uxnB{0jMh5IYVY z(;zd++G5mf8Ngw1ttdB<{y`81{^qr%XsqGt25@CgC>@7b)^H&#=}TSm@ULl`v(P|9Q)HFl*S>qs4#X zr3+`BT5{-w5i`65@EoT8Uh5DX<+#ps!dN$?ZzIxK zr02p6d<7*|`~&tK_T%D)W4hqZn^KX1zJhM30fb0&H2`}kW2zgvxW=*=0`2R}$8IH^ zbr2Hz8TG%oC}F;adR>7gO5t4UcR+ z$>pfsykLpYeA-b}Oa>#bkCFou$6FUUg|D2cZrr8bOSkfmV*1^PuEYeiYlWCnA>g{wsm6)OpU%rE11fl+CiuEA{ff4$ z4Blcf01Z(J6q}$7sY0+|A}}#DM~#-=mBe}FJ{BhZ zd-%u4Zaro%x$snI%U<&2BldgO+|m5cLU!faA_lYXXPkLxJWe8yHK{!9SQg&M6piL% z+C3Z4NmSToZJh+_h_Q9s?cN-jgj*fI{8xW7|1cj+5{mPSn9;V5t;y>^ENs7q@h-W% zDE6&)Aa&#>jjioUzB1<2%iWymsuFr)$_STAt3=W6gU#leE^(gN9>~>??)YjKzh-YH`5%20)FMZ<(;NM_ z1AbEzMuSa9JBS1G=bU$HyY+_KL84?k>*GzYd%mB2a$nT?;HU4l>u>$i`ucmPAD8oM zZ@b5C{o?&=68b>A;@RhV7pKal?Qt)9R6Us18#I+|S%)!WnYBIs7ZpRMv--B!P|9|{ zLZ#*D5>u^p^b7aps_`Px;7PvqJ~#2#M3J3&D&&6U z2X3|>{D!Adjw>!Z-+uS1&&>9E)n!j;?Y!mvpEi`iL&ZY}>v7p-a^1hV^22s)Ce0yA z*jG5_3y)1?qiaGAC6kB$^9w~@NXAaw<{iu9{*2ijhoR@Van?MnH^$}dGn5}2@xQY( z>24kC`74*h29pCPnO#!~M~x#5Vr&%)>-*pG-W%-)U;ZqfyZn;J+f~!!FxH>F@~bas zHhA~PK5IHJ3l|N$Nl=ZMVr=w%eEnCFw?Dr%q%yHot=bWK$Pa`sBG(rU zJLF`tESeJV%KtCU-URH{>?#Xf>(rc7C4mrMib!)iy)}8NJeZFt6_g(MW z-?yM}k~|N9yLvjnJt=?xltA!jA;T#>|GUKB#7O^Cc>t8AC zse=T}Nalmc%$5580RCO$@$i@-iyPTikohSgpg#5gA*+L1St`|XJ(^lsAe(9AC_Pn! z>&UuG z&R`!I+9v#SZGwMEYy!9Pn_3I}I`%Q)zr{PjKNsR+9Qr%QPa=#JV3e$;3o!*Y6I}J* zlPXI7Qm=#*aRP@Uk04$Era)Q0N=!_`)15x8n0IM5t>HgP$7Kh^ivg>IaUNXI1_EmH zm~9H32PO*jAB_!GG%5VD@hV*Q^150wKpMgdTUTs~!%WB&_AL#r8AFWAAYqab!ga+G zv($Fe%p&}_08BXiEJsu_E%B8q^=#%5=Rgid=%j@dC=VUcXwI60SFn<{zGP2odHv&j z`!Ni3jqs3IS9exSFeE~{MeNI$gj{kf z!ZoWRE~{qn*vb@10+bODO~!z^PiQMaG{2ZsjO3a%GAA059>QWq57^GUkdoR=xF-Ip za0rr(DpA@dD~vr7o&*0TTR>KLrtHZ|7P>Ma?CI|j#a`wfMqOuy){4Q+`vy!Vh>AHh zXiS(phJO@Qf-lPnLY>xxbl@9|%~tp2LCvdK$GG&gKegunOhPAq@%=RDS4`)i-H_HxEPE1koLI^MowQmcd<>U2{3xB&Zj!C>kHp4C%k+!ZdM`8RXz1D^DU3R0HM4-y2Hf`6~D2wS@CyT3^4cbxl3(b z@A}w-cH6!AtIYGi>N~86hQsBXj7eC-^4^YXXF_9QF_Go`#XZt{E7k|jO4BhH5X+y3 ztcd9q=gW6NOdR+HTla`0|L-hX{zqP}b>_SIL<>7=UAaB;5hjP-6 zIFQ44Esw$wLB8TyPi)sLkIMLmuYOOw^TQ{qfOgYbWBaONioeY^i7PAYvB5i0FHCS- zEvLctS;yp5Fr$`%fqt8%RUFr3)_0u4P%pjeEg!VyaTs6mo5mkeTORZ9@~`}YZEWj3 zS=@BP)&BC|^#$#c@BE4P#w&mEb}lhCI@-$B8+ZE@mlrGx&^+PUFr~y9A!LL2zV*%r z?2Gc5$jd3^$2{t4KY8X-y!dIK$uaI4kIf)qHXhSCM4V5tzWs3Bt#{ntV!Su}40&X; zL1cwV;egB6{n$Urz9NmMtv$47=P&K6erK)DWHD`UiY{HKP2}I|8w|K##=LmgOTGT8 z{6Sn_Y-d%kMqA*@N2})?KDg_!(XbH7c;v;`e(}@oJAUj}*75W)7|UZb?i_?@<$n|W zCy|=!%e3d)jm9zaxVHb`DeP4LCvABc@cno6KS=wc1G)RA_k1)tWTV~~h`yoVxa-7eUkG8Gd|tjTkHa{1<^rlZ?=)M@kh?P z>H$z(t5*=kPc>)sxG2Jp3yT6n>nE41qh=fw%$VDRb&!#5!gU`Y>Z-Arog>&p{uA0v#bf!hwJ2+~As}Qu z@f)L+&FAF8e-$h!MA1^E7_t$PW0%I|`O>%zE;OeF+!gIW8P_O-(yyT3!hiaqSVrTu zb;h0QDa=Ky|3S!hD1|yx_W!AapsE7u3lkVL{DsHA0g_}rcLlD`6?oY^JIlkgYXk7ma1yM;K&y0Uo-!2& zt{D*{s5p>BG9Zb^aToi0&fozW%yjXULbk=Aw;B^lp*NTQF+>T=`(JHgSyU2^ND{n z0Mv!miQ7QbjDg=>=JHIq&;i#AE$%V`RAG_v!?>Wmd9r3sotkO;nB;pwcR?ItX~&l;|o8l z|ADT9&I{lDHojIOdaJWB=mG!Fc*3KP$(rcR4V{fWI{wFCfZo8rlIM#IFL>(Xq`oZt zn-zO^AfWyEpY=F@!Dl_rp8wgO7B^jg6_;OP_QK`x*3aO#pIB2; z&h@n$F-fYvEEA8}K3e|wKp8v+2L5k;><#{BenQ{nG6jMY1NKELV~V1Nu>w z)a1}Zt~+#GkneiA<+al9;+Js_-@M{ye}mU9kHdJ$v!A*=0%Ls?23|k(3%41zH0p0Z zjk(@`=YvhWm5}zK|4L0ILoPvOj4rGsxAmSKIF5AB!tne$fAR9rgENF@|HAxu)Z5At z9pSS4L-Bw3a`xgy&r)L)@qw1x*vmUlns`7NeRkCUqqM*fj=+& zF9W>nE1uh?dGmWdQuVG%)!qW3!0;Y#diRIh^)GwL^M=f<|5x`U{+AD5^vtImNa(7E z-v9CY?Bv7e8A}{OJ1ST0iAQcqvaYO`Oy~LKH?|_V7pi-?ZkGhmE@wd7V)!1;64q#w>oi~7_v5hSp%1c+GRd+{2(nhAw*70FfaA1SYLgO|H*nFhzP?XS)?xeu; z%gzm;D0$amyq8^4NI89AJUf>(3j!%Jp{e@_y-vR>{AcFzN5X&b#;g+|rwI{P>jVB{ ztexxkB5_QGRFsbPJBd_BQuMrk{XGEK8K&_ z$6kQwW>0Jw7RQ^FW~m*ZhWO6?`40YGWPfisUJw;evm41sD9|5=`r;Gs9hDCoyed zeH(D#Uqg;nnb^LL33i%@ovRJ2aO1kl4Dc}lP;W9+u`aQlH;!Z&J>-Q35!o~~kl9`q^k$)y1+tC`&p}LhOb28@vcel^myngD^*|?9G?70< zrp!*cp){|i16zn0++cW2R6#p}_A4FYo{D`I$C?SjE@)8ro)B~?h?9&aksk0YKcZrnfG7#xygfh`c8g$aJ%Axq&srE#wp6 z|M1_1{jg2TewlMBR(h5NMP%mnV?)cdmp*_^-U?$e=38PjDR&Wc|a3^7=i`eq!aL%>P+H#FHL-y?yD^`^l?Z z!m1Ib8$WV^yW$(zvq=2^;%)ucjQ_-M{ah1*+7U@d<{LwO_aAw_efJ-JzWvKT@`B~7 zpFVe)M>BuvFy85NMaF;Q3qMO@m!S|Ia!LIBlVAFI_S>HM1bg}uZ~Bz^-$gnddezo= z-74IL%Xbj*MB&V?Kkoop2wQTe}-%H|T-_{v|v&yv8W#fRVe zi3i*Bo?ra*C)i7#b8{QxO}}=hB_xbNDTRFF`}#AuzxKtSV}$u;1@((OfARM`XZhoR z3n{ z5;%D4Gcvx63%ovbd(E$W@L+>F`TaYe_u1>oWqmEDnmOjkYFQ?PZ8sC#IFD^ZO5f-( z7M_UnivI-Gs`ur@@Y_G|368ap;D78Zp2H%w)!C`XmwxdxO`oqk#<(l%-S8&XT+^9E z$iuY@A+4`Jb|97?v;Gmk!oS|Jtm_~D@t3rFUiIepn0v3%;MeOAxqzr6ciO*kii?-` zwol%P`9HGq7e5a+tP+(P!Qx)0ED@cuWWmm5M-g*afE7W}?Ik3>?xVILyyYl_gfw&Y zs>Q2VTD44TtV>0SAj#zoqj1s1j?MxzIOzgox>0g{diECoOr)+ghJ_cq7N(6`Eyh)z z;23qzb1cTdBg>QyLb>CA7Cgi~9l{C)K$g?UIz|bkdCtII!Cz9aE8u@pis(4DOOuNBY{Wi2I(BQ$Dcpn=9p<|8kV6?C}?|K*sN z$aFjiB%se`EetzIGTUza7qUhKeJefT8KqUr|_ciyJW zmC?U_DE-57QC{xg+U}w*x#g!tp9Fa3{I%Xl~=qn{xi34*P8kr)+oHQ7t zGYKFypPr~py+|2US1Q?Q?TTopkn=rbENMh3VFnwZSwyA}ED4Qmf|#VKmK>#sq30k9 z3q)ohcWZ3j^>!spi+PCVkXGa%uN}d|^AxbjtHX*v1<*6dj$lN9$Bz7;`q``nM55L~ z-b1<7uilNNc@5N|pF|vPOCm`KPRu>}qqI4EGlQQ78>e!M;75=dw>Vd&$t4`TZ6ycu zsSt%ua{cMsoHC$8qYoati%JFb%%{M_+ieE#x&`%VRIz z`q2k-9pl>NS#rRp0h?2U7XZed%ZWKlnY*uz&Ln&$jP) z>9eX_H_xb?m}k}rvvK8!oi2!NpL4?{=yRvfUG(?dd9q#ionQZKd*VtiW78!y z>V?H+-GAdN`*TtM`v>ngWH#jgpZWEB+ckgS`8V4WAA5bMpJsAgfBxeKQh9x(M81~C zV7%o+_XAkW4fA6*{@@GNaSa6}V&?LgiogB4pV`J#jhN|%%~q%MUG!_r{{tI8{p#Om0@2TU zo-yAt&da|1S@suy?{nT2Om3adV9@YYf3(E-4RQ&!j6H#C6)n`%jGZs>KE8gf9p5;fA}k3ZBJdu z;B5=yL3jeM_*#7+2ym&)uzhiw2M)kTlC^*VL zGvnst@Ig>JE}hBhZ|5$CNuN6Si~O0J=*!A>!Ydk)qiaK7HctL6U-nTBFS1&SQ}=l` zKrS&OSh_i@xFNK-3phV=xUGH7yW|FIgqfG?RRD#`YF%|Vrj2%yRss|LWtad*4Qz(B zP#oUHZHHZ}tiU2w{ zRWl}>N;3X7S;If-NL2y7LrBYztnNqCQ{KmwnD7hfyCdl(0T-IT2azRiZ8i~z2#CuUi-j*qn2brBZhh(#q};`UYI1can95{?eQ8-5Mh{=1jV4$OS)6 z?9wjjc>$uHpP42agTBOGUT$MOQ`g1^mSc`DLqmB87`n02ro;xP8;r&~T~BN<7P_lB z2cF$U{>XqTj+woD<>0J<+<2J?;)%fEsZ)l@3fInQY5~jvyl^;~NBT2iUDgu(BNifR ziQ0*QDNz_k8I@>G2nIyeS{-pBUN;07P+Y75a8!;QKH=OLBk;Pry6Ml3U`l8(erd1| zSxsUwqVT^Q5W*w2EVqvAIQ|*xunXo{(=Um1zxN`IYAu=VGoB^>-3yQTIUD!b;@{Gr zmQwxP#l2mB_0AxOckZ_Q!%fs(8i4+mQ_J7{`rGYae%-V92l$q+f98vyvXIOE){j24 z{*k|jFJ87sUvrf&&qn@|&v~pp=gBvUZpZ8U-+G7LefnZB0Ggp8wky5<>X(1+N>0Dw z1NR?@>GSL5hoAkW&-u*FY2_b&$6c^S!{2M(cdz}fXMKi4{;zx9lh!{Dc(^|9QPTXn ztNrVq`y_kWi~1?HpL_p(bYRm0{BM3`8>E3U{{u;jUjE}Rf5iTe zuc%XUf9I>dz@B^{gn#ONciSgUo?EZI>AI`@554fI{wIIy=eCi5>eucbP>$L|{eic9 z#J=q5PvEngzu`rnwaD(v`*$xV!bf`b8?V3iKvX})7gD*6`Myse@G+hZa5EoSCR3z? zP5xg9ZkxBUN2*GafMFlu-Qy^8({;LBv)hf@Fftn-VvApY?NtQ_#*51TQY)zl(rKY#1p_D8<> zbNKc@{JQ7)U-*Hy+FcKwwGoR)_<7;ye!BmIum3`u|Hz+c#We{XxyU7T=Nh5Eti7|D zTNH8E17}wv8?W#C)4$ce>viv2pAo$f%^$e?A#_3Bq>yy&{7scw^j7rD36#M(l2cmq z?|sAj*JmxyCyOz#lmx!WxSaaMAHjRsmp%Qko-_8Ux7C2z7{vpg?Ic(fK=26$it#>_88C93jgv}*OQAHx)@WUJ5d#8WX zmyO4$ET_e9l0Pc=>bHLcWeJp){SLU0@bCHAUyGMK=P8c$FQ<`j{NsV)JfzJ=`oj!Y!jzF@YTAXr|B~tNOr{SV5 z7Ksva;A4Da`CFi8&tJ4hEw~F5J{d{Tjb#J^EVz+An^_N-E#< zsOvcQ;WK;fTR*_M*`?n4cL!1#B=GV~4$(h_nsnM~1WNOb(%p1p;J)sCrPs(O5Tqemd*@AE0gaud=BC-Xjdje7! znFf!pIo9y&^FILO(N`iqg1VBEj~)L8Yh|h*B^Dhn*Dm;XmnG|js*5A|Pq#r_0Zm2x z8~Z%!f!wg;Q85`AU@MeFV%3~rx7+bi4<<9LC4*=#Cj5tdfY^9-*H#p@QLx-nblDSjkXXK1FrrRbS)v$!ln6)44%ek z>qjabJ0I9&PXZHmF!&abTEz7_WC1kqDT}+Ixuzjg4A*7BVNgmdC7nw_?yJJf>x6$L z4)oxu0H&Fgp7;0Ro8tiNV&d%=HI^KQ!c0so;>vuPH$ zD^^W0Prt*O($7IWq|%01&PTbV=_Toj4>mb82`dJm6m?c7LEtShEZ^>mz-@U)p0|sp zewG7~163_x+O;Pe&3`ghkgRqF;tZX6{qo0suDj-{+EA!6 zUColVQN61N4f`%9jsNaX-EQCfJ3p_TKwiFIPA=!^4@C1yHh=Ii$MUF*M_+f9J?XHXM^9wttKWA|yy5-#jpJw9M9r(+b@`FY zK%m&hTZXvuiF{^FN^-uj3B*7=T{C|*eApZ$${Od1}v z5DQW4|Lt9OH6nUEYUAb&IlYj||K|Vw(0X!NUq0pktwz1#yuQW!KkojKciw5g?dhMf zJU5w_Esw-l{yPxCKGwWl-;ccGj)erSz9>`W-4C6!?|$=b_RU}Qzwp|xdhV0g|CVPk zFJ$&YIzRa_*ZYkVIr?AU{_#8oZOs2J`M>-i^T+Tf1e7&uFHgQ1b`hc=s};$;I83sM z<37`()$e3@>ern;Y$DyTK6@J@3&wu9E z?I+)TS0FQHj>|k9_KpvqSjk!t#tT9Hn!olH_KuI7SRS9Tf@&eG@%cMGa{odyPt!Zh zGGg;lkz8V{ndUOXgQ8G99@hVp@A|mC==17PFVA}NW9<9?%s9FD{!ct)f8<~PVpt=U zM`XB?I$)<`pH+X(^q(J$qUcS6{H&YDbJsx@D`_2p&4qe=(<0Za-~Q2cT#&ZQJ>T|+c?#5j z_dosVWjyikBT`!1c(Q6ghWc*#;C*rD{b&3spS~s0Z^_?0aM=U^`EV$dR!lB`SnWGr z{Vw~q|MiP_-`9Q7=dJ%Oe;jaG|3X$j<#1miArr-{U7!+2FD!*s zR__P0?tt|RsN`H5(z@SJ$;xkmuKNAhy5v^>2^A@YOHkT+6-x?ytRcz358wzxJ1JwO76A zJseB*KV)IG;lLsZp4tsq>&#_y;q>_neLfN&S+X*)>@wwyS=`-S2@>8OAXJ2SG|rKP z1>c8rrpSc{cwpnfjKZxqc^3Q_C`_8f>Lplvt@n7If;E$ViS)AbHy+JgBP&JACf0r8 zoj4@WVIZAwav)U})L}?7&O))ss;Y@_gXzH#t%af*2BQ}+Yu20A2;0;J^}>ZXV=Aqa zT@iMDMoefdiOg@+7#Xf};>8NIg8vX@=jK)$)5~`pLSd9r-_V`tqL#tRMP8~XZfT@` zAY7GeHB(Yk=AwY6i?XsM>s^M2Y#?yh5RNx%z_fGymJL=MSjo7WT)C?l2((~o1^?@; zq6mqur4b;)%F(^ys2pDLZyo>eS?JXaHC?kJja;fz;QAz;;ojOz^1L<$a8utVA&d9D z*U9SofrYdeZBk_E7XQ-!EB;5nnxwf$Z5XxK&0nz}bA&UJ#Ju(>QSyyF^S_%eOl%7c zP&PI@2LfdL3DJeLNnXxvirh3K$Tp6fA9qC7oiT|~IwE@fe?>;= zrV3$?V=!Oe4T*CqrG(CLcg2t4(lDymcxJA9Ot?Q}*bEYl2t`FBR`Svh_Yxv1*avPH zKcEPX074D#IoIH>BEWm5I*L(t=z4Cj^AoW>-=!WnRG0!?aSth?Hb7~ikYDl7A;Z;2 zcujquMNJqN=2TCxl+31%NBhj_Z+uS!r|5wx7Q5St37mReuUntB8eOC56Cjnl7h(<; zK(cvL6szM?%B8W_22Xc8iq5MDddf$N{{^r-;9&h}>iS83)IbkH9wgCHo-g%el zV>lK<`AVenx4q$mh8l%yw!;6<-TF!Y$3J`f`nU{zJ?-(2TK}Nm@^wQhzxN*dx4-mJ z56y#HC5_jfP8Iz^vz~$Fl`#o5q#X$}#D9duf&)o$%boU$U;K#u&%PGY_B-EjyZ!jP zKan|N?^WLq2tR!OqW_H_d*6E6R$mJdyb#J)B9&kHwvUV3X2h=azg~0uCm;Tl^8NK6 zdCyALPI_2hkt~{VQ?6gs@NZs)MBeUMTm8M){963zJMP%bzYxmDNadgYwR_@Uz4>-C z=Krcc7I}X9eRtd6{qgs<=PfUDUm4DA8=+t9RO+FQ$7hlwYaDy%%*7nv43UwwU8~7hU$USH zuU7g0@9QVueW!iX_q`=v_p5gqSV|^3jp~PqUjBn`i@P4|Ct+XsxsSKs_xz_G{(A~Z z<>i`hef4{`88{!k;8z4bCKhr|)PC9ZQkg~7%x!rO`UKqIx{{?)g9*#7blyd_S~kM4NNr`e02{+a97W2Ex`_2cidBLWYRvjM=n zUYe==@5|#UE`cNP7T8+JKJuP71@O?eteuB8jJM{D2muc~e9n&H6_;pk%zi6yfkhW% z$T{r%+PB@l8S|Fg??w&YcJ0UclhM_Tg$$F7_8~|x*+#WyQP2O)lE)7l3#T^M9>{J9 zl?F8~kCgB~^)Fr*cs$3adab1Lzx>Hq9!0@OjPDNry#J09n|qdP&HU&ZUh$K+cqg47 z`L&SB-}1^gryUai)|X{;Ea8xh=|ggh$LVwDZDW4=i`v%1!5+w`{I4M*8BoDqAS6JTBK*X1 zN|2HnOIf2#V6v_}Rpb@O+NMOrG5Q`W#L=-LmEk6GL&>dct>C!9CUTaSUW-8T;z>-R z0K+;bfcia^cO;*YNHmOyroMLH+;#Im)i>4@(1!GQLC=(|6O_mrA?R)!SMvrS!GAik zx!}M1JnZHzcLnXlKBvux`+*yz9`Tcm6D|QDH?XWRd!Eblx=(duR;gIrihCs{__xA+ zV_AExxWzyEe}pH(uLOa!%uX@kzpH6*BPQXzU66{A{y)EVa~frH69Vbb;O3ua9d8Ya zqLF=agE<3qQ719}sZ#}kRpO7GL8w7C!HUkx*|Pi_Y76;!=-J8}hd+4uL@Z$0E2T!J z2P3WTx@nP}gr$TwMCReFEsR7mjD@hF1JA~jLB(pc3=`ETt@Cp#oj1x_Am7sOq6|M_ z2UB4UdGaQ0ML)(`FkOhoyw<{L=AMH(sXQ;M0}-_$f}>onHdkyDZ+t!QiFHE9ML>oY z{GQ%PpKuAy=}SSGQ!cJc-lMD_>gXq_2l(We&?N>`6Fu}IJz9pr${Fs{Muz$iH!EtV zEkgC2*O`tDsl+(x01gbI5ih^wMerGdFradT+;XZWw=3EU1~s79#soHea_*jd-ARnX zPw~+{{a5UhN0387m1Y#OS#=?WUV9CqjrdQNXHs@z)%v{&!!cMh~`f&W+*WYe$``9BB%u<9UpE$GnLFGutsY2>>u3eT3 z9=^Dbzw~3jZg2R&iKBC@C!yc^@xvS+h=+3ytowUFG+FR}4{`Ze%iGkSULC{a~N-g2W&8S=}1Uhz0h=c_@-CB(|-2Wd)H?hKhkRyH zN-TdE@K3$+mi5sVr_W!y;+XF`jQN-U)4S}u52P|*8Wkh+u51PkjAl-gWiNM}Ja)Y$ehvg)rs-H=~GZwoQ7Lx_Sg>eNE<=AUEnY{dQ zzSkYdij%`JGjW?y;8nlZD;@B$KD;^_4;44ne<*>H$U!r=0%CcE?>Ny zeB}RQfJqa?oa&6Ne1?)$bspdKy7$`qC&D-o^TvqlcMG}shrjzx_KG*$x*?76y5&Rn z**E-)H`$wh?Gte&V|$$>3e*KZ^ozIKpZwlm*bvvt>kDpvOkJMgWwYQT<3r~VpBI-}K%){11KC&)BPf<-;~V8@lP?_IvG5e$Sg@A(gLiSRcY# zC6@JTHo^Hu3V-rIT)M=vA+(m5s1aOA3r#V(Fwdd~0n&(_QTL9w_Iryn`Kog>&Klp#Nri4boDTH`9FHbe3eEPwU93i`+6t;p@z~N<0(o?vyW3z}s58 zx{~fWBg;HpVz1S@C-i(jhmG~bGJW)3kxIPbTG*L&3Mhghvv^5BAu1(@v5f%8C+%m{+ z!@1~)Ia))h>B8cpZlW)%rjO(19Yu_o86WionT;8O>2Jb6T%6X3#QUfOJm>cGy~ZV! zh~y$5d{iU1--jkM*v_g@3Iq@Xp3G!8&B3Aia~Qx&0|bw$cPjp!fyD&>MnB0_77xLt zfo66In}*YnHNU(R{w9rY-vFu5f$-Xv38$nD+W1!4ICNc%XNW;_V+|(`(N_(v?VGF6 zOCB=+#y8&27Ayx!l4oGc$SWg|mCNCpP~Rn+SQ40fYxGV_8qZ{c zX-ARX6+gb0ozNy)7jrC=yMq+L>Q_V!3PwVy6FWnO@fR9+Iu)LnWXZaqp|AaTelioY z=seO`MPAAx%|f`_=4iu<$5^UA=gFz#>*YJ!lgs^v(8qqDVK!^2g@GVH%0GTn`U#r9 z7rDHBG|4apPRYks`uXOl?tp#*y#X_o_6isJ6YhiVuuh|H(&ivTyC}`(A?w-5T5}G! z=-=b<4iz{fCLL+BG&yzD_!4(Ewx!SHkHkOU7W^l$V)+w#Tq^A&hHTv>g`?=vp#eEM zI9&~YL}iq%jokgSr0g5t{Z-j4O3&*DUMJ}Hc?!vDBcbWA5<}#p0?Idr0C>;Jwf4+< z(PAy0H@50}Ep#MRICXx7SEwC>&lel_EfB610D`~rsz8uG`eqCMayUC~QC;s$r=J(5^F#gW#-fz(H z6AyDNf2i*>Z@gyFZ+!5?Sw9fg67D8jsyeLlOBPA%kI%jNF>&KHJI6`ogUs>nyG|{S z6==R+!}1X+&0ZT_X?$ogMQzMrIQvVDdfW)&uU(F(ea55K)5JGkcNOnFeXzsrpF9)y zERT4&V*cN!L?Xw8e;s>S|Ecqr?cE1bc_mPf_-?^Jv>rpiS+9BeVayw^zh)idK#a%o zhY5RLAa=~B0MKiU9vd}Awvz`_{)g_D*Yd{?mp{C>JZpKmdLhpi!g-M^Y%e-1U!aaq z3rJpEu7Cb#J=Sl$?wYvq`m0vH^%D=BwcGAF<)_bIwl)q^yG=nZmzVen_)r*Q|MFOh z<#7*jMQ8EmcXPls-8$Q(Fj$ODFJ->r+NwdF(HdggLUIiD-O{BgX6OxJa6brqX=j;U}=Xm}Pz`H!*qIg(3VV+5uVA3=Li zGQIfoAMeX^hH=X+AH0u*b8XxYVg-a?(luJ%rMR_(o36hmp7oT+uAkp|&`Tq+rGbRs z`H=`>+Lof+$Rub8lY^x~&Karwie{@C@TvfG^xJRG;)alfBB zd#RPxX21&F%uNH)@c^)napsVh?mTfCacjc$k?oqq8#a@+FSH)Hc$CHzW8Cwo>#nh< zKK{o1Fj=w^Swo80TVerD7mqlS@>CR3Yi+*~z1339$YHqPzh2tUjh}NTGT7ewi=KJ& zaG}v z>FLvl``D9Q@ijzP9)ig@_f0%h{EwiWH^YdD{}#}zcu2BQ69)Q!RZTURCeVo~cvdAb z;(9y+{ta`&HMC(gn}bXSM%)(=8o@-08h(y@Yk^`zEj1!QF!@}(nJn$-tH6EiLqkS| zuU56oOT5tBuy_prro0R&IUn|*#L}-C^ zW9PcAeK;j(*J8<>&o(MQhRe`R28dcP-00%i2W8t0{=45;M@Ng<-lMCx1-Vc7CnTU1 zp9i1)G2vW~R*?8)_zd)U_3b66&+F^>Z?hjQF8f7=e-|Cp_n0T$os7S z_t|m$@Ap9pJAFgVtO|v0SeSwTJ7W9oD>^=peJ1gC_)8x!Bm1}dH@xwI{j#2&6&aDz z^7|T#(`H!dq${0ZlwoGtL`nmFj4W=OpXdeA#qe!v+qb(5X636r;19Fuak3LIu_3_@hLa1TjppOL@ID7TBze+bCC#IIcg0p^31#lkED)z`YTAy0yS-2{OC+KVl zP$aVsIt`B>>AU^24xkn~bEDXqhJ($ZMbrU^;=L@1pw?@W6gQvaFrB9r5WL4lW}BnI zX2p2j^Wd5F#PV2~YkUnjS8F(<&!hILX%?j~zlkcF;xI&s5l{V$8~st&UXz0wNt*2| zvuBy!v`4E~)e^}6keAnEEjd_B@d<%KVk8Y-!3rDkC5&n6?Si{3A-^Tz+Z;Es5t7y& zW3v~uo~wq7u(s;?-)v*gt$fVRxGjm=sb2dO_~&8?aIf)Y?t30MZ6_Z-XC-dQs!MPa zBTPPLCJAp_TLL#Az}RxQv1Nlt^?(KAgR~r;VErByQvw3|DC5Zx;7RksP!VgEYDhBA zOD<(H<+?C)$3JBy$$+uVy~jHONY`O>_#?prd9v0OEg)JW@9WKx`;q~1#_IZ5oTMD2 z;eU#|fly<%AqZ!gfg)A{MT92DHQ}E!)lKDV)R0?iTFm8Blcvy)Euz(%Wiz?nu~8zc zg8kt@f-x)4E8FShQ~r;suWmq9Ib)n?7wxln2`f^Wo5%`w5gqqP!`!B=i>xQ#FiITl zJ-vlOH+2(;4$`gc3zB`>(&+K37VO<_bDcq_*x-Mo3!1y|FCWlO<6kWf5WkFbWtXcQ zM#YSbCDA7pozbSVm$dpxRB4R4Lf%uON9Lja%!C(EoJlfS-uc$$&w%=_G65Io(G?lv z_k^G=EG&l{zaqDMy8L#758zO!oH)TWfS>=ZqAT8VwLt=`27vB{5ZO2J1n>yDR!|W& zCQMiHak|=Ju3!ofgA7s_pG}23mm$duy47yLGM2b(una0-wZ2^45pQbE=3UP(_Ep1Dtf2D#wMHptoG#x-92O z-OjQx7|_#k-HzGZDmgI^vv}q`saj*RS}`DP;w5?4YCu@mCcwx096yL1_lO<>G*1Yr z)Zkx%j%yxR2x1Dl9BSNm@Pq2ud3Nn)VxoxQaS5+cJi^yxt+MFxL*6&kivqkltrW?t zSqb7*7Ts5yVW5g4#9s60T5<6KvUUMY6k!;4ER+KOyM)!4im}WZjurnbngR$zQ<=Uf zc+H7fKe%@vH~oL%pQ}!98W65(29Tas=W{MJcMVyuChZ+ zv7zE0LEWdG(fd5QCdR3>2d*mFpK3dFkZvIFwJXq!8zc9ejEbBhW8CR|L)H2xplTb zWrLY3mVkq@?jA7|*-6#h0840czM$6dxC^GvOoi|@L{KkMIYUbML=i?=crUU*cMd|* zn?DGtjQT&t6~%a4Th~d5+435rpM@kAQ|Cy_A(%KL+v@+hK$eiaha^!x8c7U~`Yb?E z8A4Lp!$|n&_3jnwe8NA|Q;P!i{!F}C5`g1>$ow8Asbo2=eDcf%Bb}lSi#|%%KNP7Z z$RZ)Sf!K!)R~&JpnR$JkICYNmRB%c&Qca<)6Qmeqx_Eks%+~7e@!l?j5~O2&W@bv9 z*mL_RO07Wt9#c?gcgP=$XNTxk0g^sVxP!vCbaF!~on${jOje8K%=Y`5*p zF@7!~YG_}3fSh7fLvDyeUSYI)lT1?*>}#Ei0E@pp^zZ<7K#9NkG|mncQ)$&zk4B|u zkd*pg{A8n-imjPgL4|mxljRT7T7-BSZru+L+)1IYbzVU)=p31wC;SiD$;A^x#vUSq zP!jyR+PxH%6}@gDBk)c zP;eZxH^6^RIx7Um(ptUYAGJZpf8N!#>JsDJK?E7!vwj!kV~Qzx#>afWiaZz7 zI)XL9&(M|xBd6+ds{%#ENmWYps&8CU&7|i4buP=ei!b^9&;d}Ps%rQ*31LL4JEaJc z9Y`7z{++SVQFM4BL!i-B&{j)_gIx#yN&cDS6j%fo2C-DO;(SNoxxv46UF0>QuDn3F zYr1#8&?{NcNjCn@dk_a`i{UeXkO}-Z_&@#v4-ZHM2d*4X*^b~}l5KuPAD}?n{XD-Gl2`-`Eg0Hp({G+_Nc97pEJgXS)O^6M2S>cl7Dd=vK~@elfn4 zIOZ&MYUzhDcjL36bGO1UrbV0|6=Krg;Sx8D4ZC)&Ii?tESu2|G>|;`k9Yih#v~j$$ zU(D;!mzc|3i{)I6yUnqZu<=&3PG*o7iMXmStNn#92rk^XlRf?+VT*va-WbNsEvQ29 zuilrs%#H%VgeG2p+@(EjQ*SV80sk3f>3tk8)j8xA{A(=0IvAJ3&Rvd`fLiB>B1J+~ zNL>LIG*Gz9#*mlkU?f?Fo5s}9*|^$4*FDGF2bSWk@2ufDUaeF zmo9cu#FdwQC;Xdj^M8Qk#D6XS%X(c%Kud){CP%{2@OmWwO9n>%zxUMn9NyAY!`*@a zWkH+^jtzh!gza#Zvf>NtXxd=#H)k&FWBJ2@LoZcnfJtJ^-{gOJ!Iijft2flEhQC=8 zf83uAJUm$Qza7DUQnaWuGXM8paHw>Pe-`Yp@h%B{66xc!pl?@v&eR-@=ME1^C(!d6 zb5U2P8lVKPap5nRTfXMlk@-=nQ++;4fO`yvQZxCd~hIE-KP19!9re<`D}WC-Hyo z!X-P6XSu^p@D<=+{0+^_fbcGT?|1+Z-y(UY1}k^+eqSzuQ8rIIV_ie1M~K@f9snt! z;Xjh_b#Ed|9vt!6rS`6b((oVneW%egGZl_Oyv>?!A6WxfjidNa|L~Mi>we0TYm`)# zv1pR9h~|K-nMLk-;FM>sl(=WZs1BPEutV*%S2>39uyh#@c1wO$EQ+f#;W*z%fUxW8! zQjG;i!ZFw8b|n8Zu)D!Eil9#u81WzFg_61%Oe|A0+38{9ad+{0WrV_iC0^j)Wbv7- zLKRf;2KX<}WDYUnfeY;~^$?g+-p$2e@WTHfk(Ny<*80u;tgbUnsE&YtB>&S5D`r^X z6`vwVBOXzmrt7r{|3}6f_tTGqfnQSC74biOq%F7@WQk2p4}rONYwBu*+H$h5YXn7X ze!t#tB&)3LsRLi|FA3C52R_nV7>L%YuJS^shvCF8*UU?%hSNQ&IWiEP)=LZ-VW1)k z$2tzE_58IvcfnVmH?mQ*i4;-7K9Hl()TnQlFeTG6$xd|cjEm)FgAH|;-Y^WC;A*eY zxK))>UrXneK1nKN1rHH36cN8}O~0sa5DP3MG&sbiiE}Iv7F34#i(7~%24&3q7#g`* zfXhT?A;_6G++_Pu5GpYUvTj2|>MV-1H(daWeK{@=y0j4>*?04f+Rh1MjD+&wUwFGn z#PlVX6=?Azo!h zK110K#x_xXNd}~eXrl@mz+u!Tn#9H` z!c8_ln2;ri!fVuT#*KyuA6TwabrsVPFT|JEx9&f){9(I2sj0~LC;!_Mm>%o(`{^~|Ux%p4>0ijvdV6F}R8h;Qz(3aSCU`T{SmtcL z%Mkgs%Ja;lHjsetB_F}j8IN)R2Mw0kWf5u?4gU@@%-D5Mz7UeLmLFXo zgrM{J&ahUPRBqu|IYP%jNFGMC2ra!#3fJxjUU4G~_&@eiQgS!uZ}!&wFSefW->%Pf z&C74HwfsNTCXk$S9e&&i*2n#_W~ZF+aYz0g(h;){oVj3^_WMDdjL9&StZw=GUR~CeWx$@KA;#kY(y#Q3md6dXA-PVN${DRSfkR9<$p?vm`14i zrrt%~WNd36M$s5N#i#hU{Mm!K3x+^M%KF@qR$xkmj3k2?Qb7*MLbQP-F=lW<7xol+ zDO3kxB#gW&_@J#i{;lKRGHj0PaIOOQZ@1c9+NGQ!9L(x3$PQr$Z#j4B(DQwhsAwi! zcdErHVqMi_aoA19Fl#Z;P0ooJfmG&g*mX0OU=?DG@|J1`#}k<@P4$_|$pP?$2kA2g z2|dLWcs^RE!`Bms4Wx^g_UxC_$r4K8#J44=z2l#*S=tE3D)wM044oIMj|JbWJwN%- z8N0kMbCCsX^GHnPf)Y~MuS?*kZc*}tT%#YGoL*iy?vz zxtIU$KXt}0UJA(rqOge8|7TI?<5V-k{^Clxxj1~t7$8mjCW)sS-+?J>c7?xyGt324 zZh$o9iWU;OYaAD4rLVf!U0x2#FIGI(q@)5=nYb&5x#@KFx|FFhb=7Nn*4p}L$!_Sdx_?q!=Q5JMZoQq71I&YM+ zVW^>)wm1x5t3yAAG13Rx+O6GTtQGaD!nzM%&*JO~`0sk2@h`GEFvq~AA zKTCsUESH6C$rX`^ZA*Z#Wj!~?W>sx}wl(H_rhq~i@vJa_r*R6nl6cysmrZOa*oPOX zjsUVgPq7qRF(5SAa#Sw@%7hGnK~O%h;C0F|DiU7L4k?`RA?K!EAe)lmo&|!)Nidd} zVOm^xOHP*LS^_`iW7yGJJ=d6af!}t*gn}E3EUO^Y zM!}EtRh;GtG~T76DnHT%*bJa5Mh0kW8EYLFGb&fqRDwr(94?9M@YjV9u$=^P@h6kD zq;~5R;_~k}y_~8jQi@KTq-Xk6+B4|jh5!6{CWEG(icr1R(v$dz01;an!ODG(@Pk+z zsscI_Yi(A(r;)0W)FvweWQ2!#fWnJRb>gK_cJOobAS=A_M zzc6L1P4T~*G_ZcW+a+s|z5x7p5}A>VYXA*sA~n8WZ``4CKM+u151rdbTVJT<*i=&Q zK@ufr8ylC=L-&x_x)j|fS}e92bxRP=+A-vTjCuLFcOOkc-wEez@+_!4#4WVoBTMkR zK6Bz9{<|SnQa|hky?&P1F=D)ulFUER8hkTk=#lF@Xl7@4O&nyakzhq#S~=I|O-AQ| z5oZ;I7=MNQukpYn|1)o!*gwS0b)C5mrnt0Ieomc-ehkM_{~P&BvS+P8%!! z2YPgqP6Gh_pyZ7fqjkf01f%2r8$t+&q>hlaGn}|_@x~h0Hu;}9sa$nk%CHXO+@LC7k0PEZCCE*;R=ynwuXy0$^G5ArYedF&6C6>uMKCiJ zIKa?d0|A!$%JpzOjrl`~8kEM`y^^UR=N!TIDn&l}C1UE48DL3RfF zGAvaM=Iw3?1ukRz(2tag;bi#qW*H6n-|2UZRKUNJK<=rj(lmlOK9JaokUJ7=04r3w z8f3JWLNGh$fl%V_ic7CtfUXqh0vlINr*-p~ z8~0P&e(`d|{in|%5M>@A2J$^gd0|~@J&_Q(!v@^4JwQmOYSv%;}x3Sr2HQ? zq>NEDgRXibpIcS(e)J;D9aN}g_Aw_lwT+?ktONT4q*DJgmT0XLr7T?ozsG;$=bp#S ztNn+Kqx`>0igg3y#L2UXf3yj`K9o?LfY()GKT7+5x1)-b0?X-ZgDx31oQr+Bo-z2+ z571so(5@-TeoZzX%78$MSA%v_^w^!+!I+R&?&7fQHAaxJlqO0>d1lSM9r89$ORrHVsN#$=A2@b6c^f8S6r zcftSIy-GevJ~!%J7B-qxulNr9m%o$536&uO@GM>8-v$5u8W7@CGzuyxTr6RdsB(!u z4F$W)3G3BY+=|Ih>ar!=WtGL8Vyhp-+P(KJGVK&#ov|j?Z=_#!0>t;d} z)|E~L{{X6^UX@X2{HsR7q&6+r;7ZJGZlZ8qz&#>FOkd6`?_w&t4cHieqzN%FSaf9J zxT_KbcX);SQs%hg3Z#a+E;y(_{0y=RG0DrGLmt3$g?V{#NTDdUDd2xZ&s(pZ>n%0&q@Lm!du4@@Vtp$ys0c{>7 zHaY?+XoxgO9AXD{C_#oQBSy4YD=uTC(tQ&^E*Z%cb}nIMP3b zA#`jI)cSG=7xO#4eatiC-?*5757zfqx~#s-n;9ICVz3IHyqEU}5(WQ=J*7L18@X*; zdtQ;)il{~%(P%$32qw_{O$s$DgJeQgLB&?`W5h>q#1nSs* zu%V$bVFnKL5vnajTH#Wz@N)Qf$_8^yHoGYPVeM6c5-&`!??+@Z z!os{Y(@6{tNA|wzXye-@U{~6Vf`2b#$}W$n(WWFL6G%*ol90Sub5@ z!he2P`8iKUr!GS4vkBwYH5b&4fjDhAh$g{mLj9a+CO`7*zQN3H^M6RUADaK8OGn+S zZ{*Lr!a~MqvpIJe3E}bwv>!c(%=zD7!A<_RDF7^2EOGG82hOHAWh9rYiT|OIs3}r! zyc@EDgwD4-)?f0J@j_g+=l{cX51zRc51qMah;Wz%G0&!r%`w_o?}Ywn!u8dcj&e-B z3;CmJ+mZqEd*w5Vb0g@jI4a}>PKJ_9#|#-%HdMHlB>WwU#lfCxM2GU_vnuyfO!y)E zevEDHmARC@XzOnR+;RWu)J-ITAviS&b}sqfYW+rAL|0-Nb@+nIfc#}sE`Y_z1EPS#z6(tvA6g(msv@A?A&T~JCiY-V^{E=!y!rynr$kmZ z8bA)rZ-sx$xI-C~Z{onr7tzQCxvuxwHNW@oL+dgveVgbF|FshQc4PP*_noZJ;LO5V zCZq=^R%+1VQZ4!9ab0UsQ|2AHNFWly3+MNeP#T0x0auCv#Irv7Sig8Oj36x8IDN-B zCON`TrDEd}(t$8q-&{Y3EK$>pvI;GpBS(#K5Zv2+rvGwLP`vp}BN<3DuGCZ)dNr+P zM2^*hjogXxx{#l8u-<-DYK&+yCy~_gFJd%Aa}elg!hdQM>Z?K84n@xeH9ojF%f6E{ zRKv%hXYJ*-88YYIDp5aHve*@zLrqfmi2Y?`?;r*gB*|kf%i!bWIOlJ;w*E;}m8W?o z;pEP^03JJuPbq1Df2Yqty@*qsJd5j084^zH&yzsoL@*zMlzh(k%+$A6 zz2jOTtwc0Ih*N3Mh%5rS39P8Ekc}Jetdl5IPc{&H&#pOaB60>96sdVOz%ndE& z&wCp^-OFk(FZHsOzr9fOZyQ#P<90 z2l(pp+KDg2x6NEny{nBJT9n#r__*ci(J(7NZF(P52<+&r7Nl|V1Y5JDtG*~c15RQ+)CuS}s`0Q1|Nr6_K9X9nICcKA7p8C;Rq*a*(@`tIr=g$Z zk{we-m%+V6Ol9oz*8qlpnb>8c_w}{cxZnJ)Vr^SIG1jW3#;*O=RS@(H(pzy!StoTPrfPxoQqlJ*W?f z{q9re?b80T*9D&7u+n@QBIGbXMJQs{1jLHNWJW^8_3HUt@;Dqg{Qie8*!9<3W!GKp z65D-B`nIu0(`jTlvi6F~|A+7Q@bze8DE?hA)@xjh7`ENDAB~$=d6wER@g((=j2o_F zj9Scmz`(p;?-`Z7!Zm$;a-kNY#`?zey~Sm+b+u(nta4DjFybhO^PoMhs0_;S%QL7- zZ@TDVZj>B$Jm|ZD;HQsFE}^L=H0NNLys~`4rugn$iR;@&(b=hlh$pa>dN~S>RsV~D zcH<3+2eyehxE#q{b0Ty6no>KrMeEd)LtYWECsWKoyR z@jaaOB^NIG5niZNDR$U!%4P#u}F38z<+)QoP>FY!MbUqzkT4M z(@E&O2JsdR2;J%^H&*dyv`6FfyYD~kmoD$OcuLpHSTW%rLL(+mLN;)OG`J|RHFmf% z)JQ?i1ZhDywHkpFhBQGOEfwk0rZ<>i838NS94PqTr=EfTl+BOWrE1S@@URl5g)A{t z^k#1rpX3zr&mC>q05eQ0i7u)~pm~W^7x&oae>cHD`8qYN*Ju;|0VOz@8G4Rpw=!~a zEw%12D_Yx{tr-M{+|D`>r$(I{15ibVzK;Kte0i>6^Fav5Of|(<2+g<$zZA|VLw`_> z1OFq2m#JkoO}cao6O38AI5F>~EU$Qxd$d`G&o)Ldispc#aGe8stm2>xk{UYF^rb4? z&13F&#dAvcLp|7tnc>AGz`#0n=CFC!Y}f|>MTzQ4=(!F5M*RDPf9AAFCFbzmko=$8 zw_00?hwsLPGyVt8k^d2+(uTQa7k$I&YFQD-`l+E_4bsazdqs&a-L8Mbn;zJwz0$#x z5K4kABWfGGs~_J-BWdcAsWJ76^*KaTLtJDgV|=efwYjAXgmRQ^Yzn-Tc3e|2cF*Jr z0BJlg$Am0?1;P%)n{AsDU5DO(jMU-}V=by5&JtCUnR>@QXb%#A>ks=PC``hbs*59= zIjgeuLvQoCZ}f~Rwc>J!u)Y#|vu}iCnP|QPyA{V)-cWus37@)3>w&@3`8G|XN0I9k zMo3f}c#c4iMuE~cs7bO6jN)>7*JEl|lGyB;B=&~fA!GEIm>k;}q!Oj|?#D(7A<0Aye3h_#ef;;1oAR6VheLR_#ODZY3T1 zeAMBm!oS5a3?*J8;Si!KU89UneNVc~g`38cers>ZDt7g#L$Z0luL9&q?23vvBe)UzTb7`=gn{s6M%^cl3PsIBn<`F-dVzRYdl66;3z`k$eh%OvYn0K8U z;oJNH3dRk~Py48y#?+U3KlQAHYsxmyRdH2Ct+Jty?5$V9}E{BISF zHuu?#|MlIvoEZx~q&X9rlcZ+P|2E}Bm$0?`?VpGvYi>l3$S(Q+fdhHFJ_2I|0FRke ztGhIIB0R3oO2tOfv=((tliJnHru=Vk9l?LTuHNnJ=1;rcmKdWpsi@*|AG~?1E93#G zY~bTZ^MCz}T)wqkjD;BUMP3qq+=p!C51MQ!;3b~VpP^-_yihHt*{rY0wWGpOjak>y zKgLpqN}!%Orbt9IkgRR)7SHuo#h$3nFiYq~;3`-GZSR@qo$+tIE@`P=bYvpq*4roF zs`0C#lUpJ;W8lZ--z9(xCe-%FQ{A1$kt9>$$5M)AZkDsOPqO6)@ z>)x>*q-ulAL+1?FUDrm;gt*XRw*AmmWh7w7yS>n#cP#4I)I%*8!f8{(`zodmTX>T6 zs4shLEPXJyi2$kHShm2c{s#~h6^w$__F0c7Gyd;Cb!K@42CYJmi;6duS6FI=S)H9Q z6_$C`l9MvYEBkgW)=Bbq(womtS^-maMAuInrp>(Dj2D#RTh6ia!-7E6IHsYgR656s zCadzIp5yhB$gKJOG5bT68d$68nnP!_hA;-BwvXC@ur1yu9dj3Qi~mj*sNTwVmQP1R zCiRFkTa@(*dLVDeq=xx;2^^-DNkUNzZS<(M`%=?464IhvurFlM9Mz=3eAp*H;ngPACaJv8a5y6 zK8GI0*KpBKj&Fgu$lb0GcSzEWYea05u{d{yJ41QXtROlWD)F)(I&i+yU8+$ShtpE; zunRVvvx*wOGLHMha01y!C7Pf>yVdiWNPr>$pM_A1Tr=>*oh0fW5ECT3RKn46a~df( zp%KP4h~XQjjN^ah)$LXLR9ss%Z_!eEu0{W-BvgQ3*ItF&A_D|2@Q=|&+Vb_h#etg& z&jk?xCiA3#l2%ClTCGL!?*@RkBrTWH@4e3*{GhJqH{c%NWT`b-2cu$iyw|5CXOus? zOY|@NBXEGBZNYNc&a zG6&>xWdZ6~>I}nsjRZ3IvRjJ?rr!>bVg~9Q@eB1$VJwxGu!JwxrfP*+!ZWK#SQzV# z8B{^%rroQiNvsCDc&I=%Y8#p(y(1@f$tiB^G-no~z|J z_&B1`I$x!*^e88L5sHUF$`wIX^If_eao2dRgD@R-Xa7L*wPMguF{P``S`??Nh{IDK|q zbku=T>I;V-%%uA>*s|k4%gN!N8~i)(iCMRv<%`edI~b zdbs!z-blxT|AkrG-Aw!kHwF-Z5J2$7`AMH1Dkx4g`rOS#^*#S%pB>qy1OJ0mJ{N?{ z9Oq!O=5f%i8A#^BktrvFFuBf*_NPfp9nGOa0`ieJYlK2A0uW{n%_8bjnZw-*{~L>Q zHElv>d&Mut*|bU3^D~BeD~WhFWkfJaTg5zL@PlU}@}U)2*u{!~ZP@$ce)(4FGn({x+>({|GT_m#osF8Ig$Bk_i{=t{wB zxIS2HW>Ea&<3=i5QxEDU=67% z&;RZ%CGV^|nge*W1DiGYuCs#S>C3UIa!bsX!b+=^i&$c6)cW8GHlKc<6q1dC1hm`` zq2F8m+WV+#0L~l{p>e%tH%cMZZW0k*dL!Y9_d$^Q5jw$&ZUjN0jcYd44FQgNs*i)Q z+-n|gf+4UZ%@d^;Z|im%bu;Ec`ebV)Ra5|5rIB-HR`2IAJ0 zj4HyJ`W{;3Z`I`Y9({L}Yoz<<;6semQHXlGgXMp_9aa`fJ7t!?x6< zq`8zV7G%!)WDs^5uP{tVRSfOtWEtiiNl8PLgfqrUvzi>rH;s2CIdQ@O?hGz2n6n1$ zT3&v{3{^8F`QaoytmY^7jQ7PHOud>K%x^d~f*!Ys9r$f<-6r_A@kbAd4Hx{oTF0a_ zDg1{^tSW@l3)3G)eUOVW5}jU}M?KY7TH7nZf&yLsq2iI7#dUe>MVr0d)j{h<(gHy$_+@k0cg$Xa=whd16HA5C& zm-#=K|B3&)p7?jk|M++yqVhlLr;>ZYDIzaMU2}-9RJ2h>qgsW zcT#Q#-==@B*Lji3>9bR6O2v%Tmiclj{urqcgt354GEB(+TsD_^Iv~`hz13Hy)w8bgTlio`W(Q^5is6wYR31%<-g+ZoC6|(dy)j!>*ZG zs+~~$2W2V;8w6L0+(_gs(0EV6wqHNt-;pdF zdPqzgLwVKR<6g8#*?%HtW(p7BG@$&9k0S(*>6XpuJ5HRkgRI~%6 zg9m~`N7X1M0f1yMaY#QHT?f5je7CANk5`4ntR((Q7L8}B&4w6+B*Xs-tL51opvrkm z{QCy~A=v}YG2V#u^*91!OjdUEHn$(UiDiOgh_IIbPnY9VW(0}D-6=$l ztw5WJG0%H~`j~E~6^1`xzG=M~TN5qghEWK55(GgnNB%cAmDPQdjfzJSM>c^A*Whe7 zqplgV28+FnU&a&nvT=gGNV68i5~uN00*RQgA|ov}-4}Ekl7}769@Z}gjK*?yv`0V* zfupNU_qM^mb;Q)X$+aVS#RmUf-x}Ox*VQWy_r<2tUHpMY(tL)00E#9nR|ahiIC$2{ zA=+@lYUqIpK?p)ueG&i8U>8Qa^=l2@Q%e~5pUIw~s)jK_-H1}t`$HNp4&)vG)R%;i z>NLDcPE!pZ$GDJ~sh8zh z&v^|fX0AcV+(x>vku~Bw)WN7UDGDgh5GhFG)L(zcwbFzn!3k6N7&B_@UgVlUOBT8e zwvRm8MJP(yy3tW=VLPR(laUl@l>mWBmWZmtQ{Ky6eIvO`eL<6?BFNWyc zf0lfaR8y5G5-<8t%A5cd$fMdcH2E-O5a)%ZTxTm$nAa?I?GwCv=Z!LMGcj^k$G@q+ z4*Z8t%!MJuJDZ~vj1%emB|3Eza2u*EfOt9}Jh>Xuo&%1$t zZ9aQ)#EC?hX^gp&%cm~b#l2~Cu-?R4#SwM{B*n_@(dZ%UyVMNRKpG=ePoeb%GE9b5 z1_e(aalyYu3F(D@Yb^=aN8dppB?91hC>nq@)qjWvIHz7x`h~wuTF}AZGlo=`zG5IN z>RQ!@#1$2<3R?J3$A7LdtZ>Hw$eiogU``SgV^Wt{7q}TC9rTT5%=o8m!lshINMd`1 z(W)^$*Qz?p{Do+p675!OGXLXt#z7D+8M~YtRtP#ElmexUF|K6NHSfQT0CnZ5O^5Dw z;@6u0Eo9?8Bo?v0m$;Q4zdvB~-jnC;fwLEK{n_+G|Lbd)#8-4ZQOo&@50T1-!ppW99#TT$5q$61f6=rODD%(!|<+k5^o=>4iSI6%{n+_T-QtH2@;(e zMiR(T%wqbEWXo^@o{<;O%zMTER(ISL$lb57<_fja4)(_oAlJ-`9;7Gb z<}5IUxp|0>LKTJobehyH06Fv#7++W8)Cz*3gx zPe<~;Fe{8DX(8q;qe<9SI&H_mDM=VQAneoPc8xuER~e7GyTzKT2QdmNJpI z`oE(u#(m~&#GU`zQ6G&GO*{b2abQquHW_}Am&D|EG6>9yLPswvP$gvZhmDUU$)%f0 z6y8P=r^&NsmR(t`k}UtIBj~?|-Px=_X<{0C?ZU63K;%=kC!zhPqDU1``a$?&PK@xmzlf6TTk{4*_ixV5+- zp({NoA~_w`Ok72U+ZFK--I(af^rt~+J2TUmwPVlPEh1Wpy%Q35z}(r+=W>PEAQ5cl zt*MLk4>&PzlN1iO23iJi%()wGW}Q&R&mPcegaE;)V1`+)b=Z)CQtl{fGuK1L zMDmZy*hbA@l&*-mHN3d~3OJfgiA@C|0VHwXLZgd5_<@gtB9Kv>7$b;Lpweb z^g)0`dqx+R6xGP{%@K;1RqUcgI((Q~L_XS~5vfxSGIkRBs&9Nr?+sVCQUNOvr<|En zvcSq~(Ad(9@Hh_2wtq+p)afkd4{1-VDP`cGd296d49M6(CVdY)x!go#X zHIBhY*98QenfP}hWG(C13|S3?j0#8sxYmGf>cXXfVqqJoMXOq$gKFlmD3@>p(ae>W zzVYC>U0Air;*;J6k5+i(g?o~!^zDHa;dxQ0!*@n!Njt39>;?bU7nf3~f!c-3iK9=P zJm(LdyA;U$>$E}*XUtzcLXMjxzClp1A+eYNrha>5(*cAs>wjm&!7y~=KrCCIFM9-I zQ^SQ3p~FCIcD=?>`_-;pvo-OZ#1oo9)iJ&sVGzN~n`lBzFrPv;n5Is@0W7#aG)C9E zg1+GKcI5vkFh$Nu{PVXI$=-}Rb0v;=l2~l{|0wtamnBx719!7mj2w;HT`7L zcBYf6+QUU3RYe*AoNI-emF46r98s=9PXwz$50kY-#;u(+-_po4BpAQZa@t`pGc6S$ z@_Nms%i(uDbk0tlzodIQFw1I(Va~m8kkFh{$&)4?<<{IX!e@w7ffEzML9G;Kh7*;h zCo6r(zxO*HI5VCJ9dKq5HROx6CVN>#^{9ZY^ z)<1rvN*v|D5H`>pHu+sn+A<^<)-rS=LQhb(?&G>R#pU6y3zzry@%vBv$uk#Nvk3-8 zYRlv^?BJ-dB~iH9mGi%DR#b38Pf^mljOlQuv{Tv!w%Z*@#fyhR;^Ut@>Eju_J^xF| zFiOXqTYV^DNBoz)mVbAQiM5u!GzGS4x5{_MrpH(ua8(-e`X_zRmz_b;E7E5QIZDJ< zddO64w@qIa$wvP5)JfEwrTqFH_~+IyG$6|^eFSdKYqI{Q447}+cj@wFzw^FRaq_T< z5w%fdj*F7t=wUz0i@{>nwAG2Dxla6G4Ovn#oKj0zP z*RDb*du`}ts{iW*mf#;P#2_NMmh}2S{D^2l%Qqp(ROV?xbaxZ#Y*ip>aV1lkP()vD zB(Y=Cm9)R@OEmVWZizWWxrQL7z*Gww z*&=K4KID-yt}Q2oYz*rZiy{9T17N@>&`i4o$t2-9ttpw-{MzT0O8ztlo-8@H>?k

    d{l7Q-)9-widG(VqFQcIm|8!5mzmOJ`(ybYsadJvju6nYv zpA|1&U5J$xoHkCFcl=Xh6_eWx6Cwn7co&ewZ@k!g6zA+z%;TiYwNf zdRl6DUI<4-y(DQ`>!9C~II}WBYPwhdW+?hWeFGaw(qT0&B(O=VEqWk#prNh(mv#ls z?odJMdJwf}JbGX^pK_FO-BGBilP)W%6=w6vV+5$-Lnh77$d_#D;9Ekd8Wtzn1g&1a z8{${PtE;ja+Lh>0>x*eUMFG1pi&W*Cw+UdpWP~iPlCGKng(E7=t!>srkWiJ5RnsRyHkVY1ltb1%PHeP@?Uiw;dPw4BOhOG#0U zPpkg0jOBs4E<;wd;x#ox61JR&>8j!11plMNZa8)56&rxjHklg!DRh*ljHM0yP5`3* zH9~eiXk|~2@(YuE!&%p19y)i?KK{U&xUfE}*i?Bjh~5eR z(`@T?QLLDkbFFejCmO`fi(6aM4Cm&FOAY20xxrgxBRHJOe-E6w;P;+7XBYR_wD0+U zr!mP)%+aLF#*h)!V4w8i4gRfbgZPKQHse2yio+?Bzrt48qZYpi$_FXXtHV&~&8l}D z?p}MzRUZjiC~(TtrYdNVPr-GetDSv*T zwK);Lc*)jtUO4`H;Pg5B*u4+gxeJ$T9nm=l-nOgMk$moSQOLbbrYQn9L4o=D32s|A zOE^RBwXFX`ah&o8E4aM`Bo6IU75w8* zehqaCXKR!R^4js7k>Pp5zo)L-TGqMtWOp4r=D>difYf8f2i{*7rFO{;Q7zjOrudWWYMPc9lt zd)A$%3{2OkwVc3*`Dyv}!=GffsROBiiTI@b6j$$3h10Bz23f zd}Ma6D|h!RsP(bElq<};tf1F<0}f1TW%r>6<78;nlqf_C?G6J1X>5E3i4>$l1vICxy(dnG?VL_sv-7W^sWdR9N0~g*Rk%M zinSlsuGv&n^NNnn*^MV=BnkB@WF8h{M?_bo7ad4 zR%BMbuSCu8ouQ>xh^)Hgg0pUL2_#~Y)Gqas-Y@upJs=UPZb`^q{G2uzoUnAliJU*X zOyuzQ#F+`%>`XmEK_~73#NksI)eRj=>W{5(Q@LpbADv|oZ_z(Xml(34s1DPLIh57d`)aJV_Jf2R(|f$j$hnWfwS@97ZthhOGImla3zgO&F

    D6z<(hH)wJ-@8M|UbEyTaaHdz3Ghhd`(gY`2S((s2hPTc)8~t{UH>6}Hfc5S zZ_)HTbQvH{LT^dTRGTmn({zH3uv2F*#a$1cwFeKISIGaR zz+U}~7!z#R*FP*ToM(;OOsopgB-Iy(J0p%o1sUGU_q_EE=mK#{n;#^G3q&Hz0y8)VlBUtsORzRIP?Xm})Ja=tsDxVCJFas-f`3#H6)!SBji2-J z1-WoM!fB)^7aQ&>5`^T-OfSP1VyNFbYhlc> z%8>l;>F-w6MRrZmlL|b5b~j^RuWIqQc~(!ogPg8#s96aFbv=Km1<=b)pw zQJh%|Z<+kP#V}%CY!xGVLx8{n#g%-D4(oe6r>vn@x=kRDddzNE3nrO2NAnq6#pL&6 z5DoLRvzOwVUIlVoRRO}$Pw4n%jFwYOqFd$o%=hY56-^xDlngHK)p9`2)3c%6l1X34 z*9I$V^jpWjup1oOY{tvUy2t zrCW}>4x6>R=uKOg{tBU1fFunviHY+^Hs3VYEJvP*b2fxr=}HYm^ku3VO-MDLMg|xH zr@v}s>JQ$TRS;Rq{I%Y4D(Je;*SUOYLcJuk-khj6$XbfX(se~&FUAX?Jx||_U?ZJM zgNHn+0paz1{CfnAy=1$^{a#+@gB&T=-l3LHi4MFSF!CJ3$lfRB? z0l!(Dvw{o92+9fzJ5MSyNJF5Z2y9ePn#dDS<31i^DqORwDr@H4d3PDC$Dx9Zxe^G?>x8AF*c-B# z)f!xN#WjHnjK0CNnsq1mp8_e-V1%t=T(4Y*ib^|?#2xXUv5OsH;h);amQ|C2IkM_Z z^Gyw?_}{KTVq+!y^zmcOiYw`u_O;gGjn9eKk~U8Yn`vCB_>Hgfy?5-bBkt})f{Bu*j+7g8m)b~_T2xMD{o!VZXf);vQ) z$}jn{HHE@K4UVlD9PEMH)x~Xac8&!N${gMp;>2*&ZT}Xu!r_cGv?muJa zE?riXTF@Wry=p9q{J=ZK{y2AJ#z4LeWL~Qz7Iv0pXLS5Gm{=nZYl&e+!nnbYm+_WA z@O9tm^8kE6gTL{y6KCVp`Af_{cFa$lM@++sV~-{Ul*|0z?;o~z>!J9{aiez{$WOCqNq%l5U5+L)Sk>*`;091?h^MP>{E^791&=l4-yj74%rg z$o7>Fpg}iTsw&?bA&cQh8s5!^yQc3@&sKafEj=tsN0n^`N9wh4NS)T$X%`j^J+@*A zf`6BUqOVQRcbhn&fNo?vshzAfA$kl%;qq+adrzK^4}bEsoxOOudIjeOfoqJ(8fc@$ z(GeHcK{`^g(t~E2oN?er60>xJvNIcbaTeIZCEi(k0sj{-?+=9eIs5QEC*#y%Gie>G zZB!vKd65=vXlE?T7%-L=E#Q{Pr(_e1hv|=L5SP!B2&?5edTO)$&F-Cz%?-&D;Ukn z$>xo`lw!ueAH{#>RK2DG8QfY#misdh$e9MM|G}a(#&vuWJ;`FJ;|J%v!`~|zX6|)W zzKM?z6khSm@F<8uytUYfoW?T_K6zuE7By3%aS(a|PA*DO$?MTHWyu_GU1a(M@h`zO z<(lz7_|U=QS8*UwRq#*6<36#+WD=JtH~?Q>-?#(y@?qkiD^C1FK1_`o*GJOGIbf5a zmzs2!f24fh5Eo5<##Q=+{~=`58X5i~1CkecPanxU(OU}$#+;8>|9e@_X_iu@3^tNI zoG!}y68&aL4nv^vnHFnRghavATFxmWcQIL5)n(WyM-Fl%mRdy=89pgMa2Vabd2`00 z-JEO;zXD~=aH%74>f(Gv0Es6tCG2!bZ{oQ;3&zyrmmj|IO%H?`yGeqr`r+g}e$by= z3)ga4fehHmDzjD*Fm%XR7-HPR;HPB8e(wOcl2uXC^tCV(N*#wwwSlHz8mgOmUx&0& z(Zhkz)Nk>T(;A)Bn?ZTHQ9{0>z^VC{5BJ7xX{Sy-=T8&4PR4K=6<}HezRb1DpJTJe zai>><4n2XCYbPp=wopGX6zRp+CdQ0 zY?f5Hw4GDe7KP4K0)08O(P{oa?rMd5w8IQX1&yhA@<~;>J(p=mPSA3SCI?C0Hep*H zBN6dWeOw9uHsN1vVi6Tqg+R>mp^~gS!Br+4tJ=MD=NU3ZmVf6Y~P)sEUKnWM&oJjDOxi%kS5rDV2kaaa~xbTH$e^=*4eK1%e2{Hz6qMF^+`P`ga*@+H6|yZ814rrF=VL*5~HM*khXi1<$RnVeuF9d=h2l zwa<9yrm=OxKLU(PN-kMZ%{zUih0($ZUS}`v-Tk7+T2)Tx9u6Fu zcDRDq*4*g9ucVmulB_mkG?nX@u}~xh6ST zq|n1K`}8y8*t1O({#JgWx$#K;M?SzUcJx)gZc+YQ%UV^{CS9}C-5Ui^Obnat>jhk8$cx!7{pDtVJuYrFNI z=ta{wo9~a|pU&mh^-q_~(!1k-;J4NjChG(Nd!+uy=RS8V`8s>yqAkx*K6&PXd_3ep zJSjZ*ivMHz-=_SZG?(gv|E_jQeKak?4(UtjGq#zZM4L7IJLh)FVX3FejUj!_wx(L{ z$>#yvvDbltCt*GJW+jX68I`R|ZelY!0bwmqR!zX-flHNsEeCUN^IFD)*ha=4{6a%! zQ-l{Gr>r0XzS$IYxAb?4~+Lr!?ayt0i= zMeYFKU?#eplwx)?aq@#&02V|1g9xZLtX#0I4-PE&?>-F2;&x{q9)-PpVn1tc!N041 zHtSg@Q2SdM+~-=T<6q*gY9ngkW!!z@NN1%Ta*p9MIYDgZr|op2iam;dcNW3vhi1pz zeyn!q-s^ua6Bqtv{Iva?B`{#V=T)04{%vb3k|Cxtn{Dua97mXR_zxG+@UP%FhX1Pj zQbzg<{bF-%>i=6;VwoQbsqfOT$psmUYB&>r9hnd6MV%9s_-t+>h3yJi9vvV92g^4) zcP7$YpUB%_5-C&D=< z-QqvAMFLxxx-sv*jpdxX3fl?*tqHQ0jC;5dxjY-<*pehx>%k7Xhpw-_CPC;LuT0cr zlMHR`K<8ZQ8NoR8%k`8VLqd@Wf#HqxaoN1+KBD0ju}mllx3Xz4a#W6T6Mc*Dns1`7 zLglo1z4?#N#7;W$RFYdyv{Fz+>cGl|eXv@uHdJPnE9>-Q5nPsp?(EO7j}&>;i68}M_O_VFRJickvZ8#P~Jk~`djTq+Cx9Mv!{`e^| zE3u_qCQCIK$hHI~i>#uS@ zG>U~Q-kfUR#5XgW$S+CHwZNl=UCAgH*1g0P92mH)W>DjqN5{YVkF0hGI59RkXCpEs zP9O0dvleZM#o-%`U_P?yc0Yz7q3hF?vAq>Pa%0VGo-fy;;bOa%ti=Qe?0BWIl@&Wl zT9`=Y;@AB#ve$aNKB^z_fBtOc!y4PYd5>o$D0!@5f!>3K7*ecNOVRMJb{yj@^X(8; zClYb!^6dFbe(vJ_KqgkH*6FI;|Ux)qhMbHP%AM!jKZv zIHK_)rWV$WBMyZXSz*;zbTWGKy^Q6{n~%EgYJ2qIzZ(u4SXb}*(nG#s+?+oc@x9)d zH*V-p`6!1BR!s-g2={O*Mo9iAXreU_sREHL4Wo?=kX%IcmGEz-B~8J%m%b|Zl|z8! z|9QR&9^PvdtrLc(s;4pJ9y1|})xAIh0uv(zRz0(PU7mwU2St9=l5))ABBA(gk?%b` zYAtGdgAxCxVM2yRt8)a8s5PoY9aDgybr+1IXE=QP@VU!z?&2kX=*;=$xx-fdjoKhe zaoT;0f3JGmvlZi7LE>dUg>|G1`xY7`0rQ=$KC^zeUCdr&vR1QM2SQdRL5Q`bbHQ2c z#_O+H|GVMZs}Gw?JKNfKo>%0hqH>|GpRq?){}p#wGm}8ty!*$TM>MyI+7XL6?y-5U|7$5( z|3{eGJ|uRiKNtS5T-ywC2??rlE|QN?N!BrnuR^kca3W#4#FZThE6xc8Saoi_*DsQe z>wxAHVC_0ORuQ$F3~_ChMWbV++suKzCai*9db)LlB)(d#BRO2wVyjWUi>cN4SWM|1 zL8S8f{Bjf*CZ?ElAo7^t-)b>UhAz&P@gGeL_#+ciXs(Q2m&$tc(t%dk?khC-6+gpz7!((ktzsGcSq^GPL(|plnkeSeIqR4XLG~iAq zdygBBk;}k6^Z%Ay=G>5(7@w5eNcI-A7W^NdyOz_65xg_kbDEAD9$6rZ&v*PI5iHm2 z^8_{hY`E&D!2eFhqosSy%Q^Qk!5=uk0^X+F+2Ssf&2jv%#PXXT+?$>#lB`7%(VC0R z0d*GC>a9w=h`TfJbMa}ry=huVCka&iR?*D&Q3-!d?2kkO*_dqx&l}+zjf5p-ETo9m$_;x)JAydCh1TlF$(f9i4aJ5t z2G31AngFY~XA^0)Nevx)Mmri#964}Tazd8GqY`wE_e`$A+6|s#5@svrF{`$uVG|id z!MAu2eQz29xv=ZftoesFwh_5Tm%LWCY&K{CNA?(`_z}VgAxQ{-^>Ovmp&!Z`<+EHk z#ZN6xiK_fg*1dt96I{#h;uS%jgS+Nc!T;gw&TKl(B~4&hD-9*p*o;f3UQ_SlSL$oc zq~-5jPqvMtd_Ui!I?*m*4K8*y!H$rGVZfDK3tLM3LxS(?aBgHq`9TSHZhBR;2(i?05v53^<1HTmJ$+! z)BLz$yRfimYq7Sb?YhU>B`#MEnZt>mE&9xOCahU%KqeZ@r(pu$0q#@q3sP>&;PA&lv(L98bPw{Zy-& z9*l}(N}Fw@vSN}0qzNV$G-!!v4NjpNx-n@x?q;BdWvi7VF~2gGGmw`6W}t+OI7Aw&64__uyz32U{s^%|FOYvC;;!{DQ* zj^k^fhLxzJe;cBFVVyrPmFi(4|;&@6}=R8MwVDWT!Nh{pV;WX;B{*;Zp^nAQFhwT338 zl4ka^!L?6MPv+_2H!vblqDUf&l3d$_`ZK`#nd8SE_ z(M{Hv#}Ku61*w@djr1E_uD&9OjIF$y@AKLQG!cJ`eaLVW!hfos{)y{%yMJ^wh@T7rByE<-cP5>x7YVn{6|zRYw2{O? z9kbfq@6nb`5*q=eT~Bht5!eIRp!LN$yht{WZpOeg$4h zD%usKGP+x<$4rc6s84#@BMgysmBf3+T>*EUwpZiBC27zxKNU5M_uA*2PGixVk zMaQW&vlfsLKbKIj^X`|#z|d={2r5B5s#F?!IyQYIs1;Z_gK1wA^ez@SLOylk%$0q! zvCe9Q1Nb(VF`;C{9c>n&E^AF`nckDzN$kkR5!O;(;DI;~>7)mc!8tdWx+QGd#9 zS}0h`wR)c5mACZu42eAUHfO&h4MTlidh2oAh0HKVE#Me#*<)Y*;=+M3Ie+Qm;ggH1 zoJrm-{!LDtju7G0+EA;w z9DIN=j`&CH@buAKy`%ZYqeF_rlo5%yMyPUK2wRN7qk3`CdoO_S^T?Tq8NX8Gko!8;+dQyF`nI+u)t{Os=G1QC3NGl*eCAU; zNC)fHQsxC4zk9=Kxcq-~;F>x(ZpM4Te1~F%JEqza3uUDO=*-P?1zNtX{$BI3sA}nC>lUC{8q|mXAkoCI?}J z-|h${cTJo+<7RK5Tx4A>RWS*SbzX&PjWpj96T3=z2%l4|@$=3Fnar@G9LaXQ9b-4R+OD44wFf z9DuJOX$;jQyPP&;2-tM5Fpg9H@eXwipa}VzP1SzPy#w;hP!)9iM;|KXWYdAjpuQ!( zqg8<7ADCEv%Wic+si=YFsjei-B&5*qHu#U0oPoRY8x2GZS|Pc^t-J+8D*hwAWdzNz ziYag{Hm}(;cu_m^n)2r6Q)6g{4azrS{B>U>9KrvHQv*MWK!<<21|O`&%5UnW9%k@w zJc7p8UoqQ(#7!2dekEJR3Va`fq*`(B;5wThll(%n-(*$x4A~-7txEiNgy|E#(Bhr2gU-`*GMO0 zNEZxaSOklZX;KM6TX2aIX0cD`x?Vtt=h318`%|xqz@LAD76g!Fq)yg!(UVGVIBONT}#Lb-bz_{P1%X$5QZA_S0yo7 zE7v^=zRVI%|7V;V6=acANPUzv`+jC}AFHh6ONM*B$VM{>)@idTCK#BT;VadBxs?hk zV@>#1+f*z?_OCoa8FCG@N0OJu6lw*|;CQX*V_3+#$_xJ{aml#|^ImI|zt{-;OB$7` zDVl!Lu@xMvep>}qAEtgFsw%N`04#X^F$FkBc%M9*)w~UJIPuSd&AoL>STmBI9g%bB zoWWiRL^F+(6;?pVmWeE<&uJxYb1D}1x;Df=^&M9m@oht#ghE#T3^rWGJX1Mf;K&3| zs&iT?BWq%QCY32SG6#%Wqz@E_fV-6!aZ=-O!~gghy208|@YVc@f4K}83+R?4Ng4|H zXLMRV+Qsa(+{B&m&zVh)S@@4-EU7#2`5H%d9siw{g`QPE|-d3DHl0=IQ^Si+vEHXSNN=t2pAVj@ZveDw2r!tBqZUgy0%JMEa*y_>J zT@m)Y;zO?49tr=BsZ(4poMv)2^V(DgG3QqJ579G(;`%WX2%_<>Rt8aWJJ+yzO^wS4 zdlv8kTgkMRGAv7*WYFl&Vay!jhsgg?z8FX>(mbi02Ikkf6!%Gf_g1?E^l4cKbU(!g zN`*Hr8rU7+4MW(c9Rk+Lx)=Na$u_7d<=ZhEN|_qYs@;lY_Gob!Yt2S$#LEf)Aiq|d zxJ|X78)Dc|{F^K0xKT3WpS52~7+1o7iRRt6>IB6I-wRJ+QUT9+tv6wjqF_;7xWj(;p`8l*o;MmNMR6ifuz_Fn^c^# z8Yk;67bg>aw_A?j->LFKKt&MxNES^i?p$12%-G;#5*H(Ea`*OF3Ns`j>X|r-co0W_97)th&C;eT4YYb*;xjB+dO^}z1ZQ0&H^iNwk) zFUos43oD24N(NB@w<2~l6zevGv8j%cag!hu%ft1e6e&`bibFwahGLUdw_EAOMg18& z9H-8*R&t4S0ta;)y0Q@0kv=i*sH9!Zl8mz3!L7XZb*ljYxeZ-fk0d#AR7QC#*J~0mw0YloD#Z4D%UGQFe-ZD1W*gcuhWvQSLleqqOZH9(W*AAHJZe= z;n0W-Nd;ayU#|@`Tm+$*O%p{bWSMur??t?UgDJbLUqE_R_mh)F3vI*yWqd0gmB=~c zZdd+06z5zG`~=aKMT*C+8KSy@T7*aUaKV4{gb+Iq_*3i>VnT?~XK_y@8ktb=Z-xK7 z4n;yGG9AxU?9@{XyN*jpG(e(N_W?2gJjHrwOwHauY3qtHj z_u{lJ{=1%a@QT%uou%l~1pm7s|KPF&1H)5<|BSI#a?2SHIsw$IAxfc#^g7+jJR71= zm^H6kysT3=i1J?{QF$wKm&4DjZx{?A+AWI~cLMQw1I;xyrOqjLsNjcj;8s2g58!}= zZFKyPWlAn?Ii`q0BR^Vxp1BwEg~W8koJ@mJ`77!(W20;+ZV}LM$!haW(U*D<1qG!Y zpGl_8Fe~{#bql&suqmCX(tY0@X(S~P8R1r7|1O|n%Xne`qXPJX$3JI zK6lxU4zulMV!H(>fq6WNqA%s_XJv>Un8e9Yi<|ZM%#gJ# zb`P4dY#ud7rh}z?-__uvM{Rms^tgerwvCY17``6_ zt-oHESLZXg^Rzw`uoOhm)GRtn0%Lo~%>sNrrN~tc}vo!fd-qaRmR& zLG`7_A=tVFycVnG*Ol;(FR4HNyqs9}Iw3*w*mc0NV$xaRQoLrJh7GTBkVc5YhsLVB zjK*ebd>_^fXC;4B@s2>>3nSc%CLSAGLS~hG0dfxZJ<^oqSCY^u6eRu+cCi&d5QX6e z@xx_m1vw<=O`{f38m4}-334F#^sSwT&9TnWSS77GI)Ehb zB=iCQ#-QC8j3Su4Vv0M@mYB&(JNa4irc7(iV%6B{H0|doDV-{@_3_@RsK^wx{D;0Yg>ha@eH7=5xg9bX1Da-z%KyNB){Q6lpVQx**JVKJ3dH?A|Cg7U!RFjCv{X?V$UKk#MY8APm-g0QiEi4{ zA4I>-uqF8)YqdEoW{e(|i~LRLoZhC|#WmCs|B*&;(LjW1rt*3)I#}3-2*U=CRZoz; zH=_=*v5V*d+l^|=Yaur?M*g5Dy2E70tMD%&5+NJm-aOClxXF;UPm&0r9H44^>e(v)JHO;QLUT@T zxH0~Ri>{32v}rg)J1S*KhRDi(1ty-FmSM7Q$J!B-Mq`-xB~jp-aY{P$0#*U83}@BH z*pwm#TvK@07B~v(?fS@5eWRZW1Ov~53;Wvh@D{w?(7*88v<9m-@dK-M5&zjRMv^sA zHs}=_>q0A6#lv|arew1I}SL2~yox@CXWz>RQtGpdnkIFz5zkQy2#5v;M zBn%fhDCx%-%M>?W1*Z}6q4-DA)@x8W$*e_`l{${%-%QrF!Tl;fo$Uy`4(Qr zrAk_fD&#T+GYzsxs(6(2o?%CdIGxGU@!z;@Yrg zOX4`qUe!kT4OiJzt|2&;M*ORzc!_Gm7ABuc8Jm}O{Ey<4__v9ZTRz+Gix1V{jW_96 z5*;@9Pg|rKavT!wKALcpj}am;Ob}A_fGn^L{tGkKf@HI5*sLULet?e>|7cIR2{_@O zt|KCwb+wP7ck6CL$A7BX&3aH5H_MRf)Z!$o!ya&cgTo8{4eo{c(i3_QtoRqvYmnx+ zW(Ge2$P3GL=Y)S*V67u6CP)o8PAq%O!L$t51Qsb-V5Wjllg>*3(Gf_oQ92l;76=|T z0mkAg%!)5VA6wpqf;~ABS2rxymZWe>=fY|ded9m*(3_&7?FYA*zs+JFe3k4p^SjbUR+%LxtaWXk<)8U`ZYshJJEHF$+UvzqwM7h=4a~zY6g|Q69zm+l|BQ%-|utt$t zcO|1En=w=(P!_4AScsa=t(bwpZw=%oczQyDFxM(GmIkc_SgmGaT35q=1+dy&VVFXp zP!&ea341K>?sh>NJMV1xkCqL_8g@|I4k6N7ii^CF>T5xBXd`5{l*&Q;|9^yC31S;b zjs*DsHxt_;;zE(0)r{K`S(S+^0!Nl;ZHSTP(RWlqCX*^=JMd3m_L(h|V;?@KI%^61 zOEO(9pGOEN+p=6|Z_bi#rT99-TU@N+dy*>ie(^A)UtiI!pZG#Yriu znP`R`K8Enj1*~0*)PXa}jTa2GaX)p{RzI1`q71ElS-j^C{CwR*4-7#yV^I$=+H{9z zpV-0xv(%1v62P@F@ZY|evRx%WJ!`N|8tU6AM%-|C@fdVHMgVGAavr`c-{y8K1*YI^ z%evSXm~C`>rr3;t%KT6KKL?#tkN0t$qHYHJHS)J!8~c+S3!B0p#Gz}I$05tBgVszt z4P5OTkbmYWcKiCmB+R33GjBh*3W*Y8)KIUpT-V--W&$p2MXp5^HHrMo( zKCT~Y=w1cWSii^uurYpP13bsU3$c%3!s3HaD90Ek4XuC(Gq?6Zpza`~k~H8uoPEIv zUF^IL{=a)9@_O(H=}WnX_aV(1|3jOZ(gE{SAdA4r@B10r?nhJCa%l!Hsn##c5;|xu zJxKuj7V^c`$z$1vcR*ZcnV$mkjVz&R(l3_*l`{Tc@laxoZzH<>wn;Xho_B9WuocxRf>HcoY7=21|Dg?y>U1i zFEUn*|I@S}oq!;ogD(BtPdjz+vSLa_|!2h`^@XxpsLstF7 ze+^?Pc%!Xb;D3A3(Tg3H9Q@i#6Gwh{LBoCf^(gp^vowZ@agvOf;4E_6!F|48x$RPA z27!w<8;FQP`qxuK5QOe114fdFk-okTjhldAK8u&(2b&jd_{4vI)&Ikd27X>$J|(ro z4}KE;z)Yda!!3%JdAv8@_-|b%e7NT9uvRRUaCkG{Tgzsv~R7$>L2>pVtme}gQPY$){VjCr;5l^qmHMk=*M_^ zZugxt8>rjCalK%oGXT=Cb5q6Ir&}k~z{|w^k@zAb05-UW3fta$-4+OZAJ^*{3&&o! z|C^S7w1%v_U^!SuYVVb(k&#cQ`s|s*jBs_}iPRZQZ4bm_oGLATnJ@s{=IR5YY7Nk{=omKU0Q?FYX?g0I+aXQh<+>v5Ao@ovsIlu zO?~ z9S%ixP(T6uo(eD{XdfL&RG$+d3_~{8Oe9ca0BiE_;?xB7jCw>Qy^*gq1F86k&)@G) z57<9RQAUI#{HRjkamsND`+wuVoQ@T{l_ZF(%VD53&kV&A2Zp2jC@+XRIW;KaCkC!vlh~$>Mnt_SWpVXx>Oei+3cwG7;C*twbce7UK%uPX3gxA|}TwVAEk!3R@IpH3p)Gm6w&d+2sf z)yiDYZmY5!BmN6XO%Yhm^R1_l_q~y9RjC&Ysn-zm61{I@5W%%iLLt6e_UvM~ul)l5 zC4ZVS=SGdC@FA|3Pb^QPG{RU8gZ?M613>+HcxZahV%7uKoOD zUXBr;AVA-y4VThb#!WdaJ`&Fa6$buGlQp-8#rZe#e{&tY7)x1{+B^xx!S=A)4}UK(6^Fa(6wxqP|27 znd{PWK|;E3nl(pt$Nn{rMGvXZcn%KFp>O}d|JIcFr-=}&Qtr69*$R568^||8X;oAF+sa z@&uuAKd;TQEtZmRZF}&9@!HLy;m1M3G z2RUp7+lryu;&;9(lZT}{x=lojn#^xrPUuYNWsyUw&;2u*aN42yZ7&gM#}-MXo$@39 zPenNrvQ0gSV^tm7$jkU93vZh_Mm~|+|H}Uozp0YE5qoXGEWh}nrXEqU!A-uSNv zbW8FC1a=?G`52jIcn1FLvod7{URnJDpv{b*XGr0{--H%?!jpt2{vAsl^-3$okwOOi z%vfRTNK);u`hWg`|CU)uFafic_n&N$LRZG0Z_BI4#rUx+_O9c>E*q7;`1>e~s`Ql= z#yzOno%(vdhma|>c6wl;wfrX1S4ancRM&jP;;qY3Xbk5H%9=8#9x?C&S;1OO3j{sR ztfr+<3=uu#E8Af>MaeiQCcU}zI)A@=l2zAKrwk5AR(ORcAcH+;Jk+9m1_j34OlNJ& zxlO2y);*nWuPD6L}6v6(D0QO}Kp?26img50|yJ-gRE&*RKAN#gLC+M4Vd!|Ha0_ zK-E;v0|du`Ktc!s-X1Cg-`@kmmM}TMEE2(FGy3YjYE8p$9E+Jihb>$8CcscO49|r&!xb^?&U*;(4Q1) zGxL3zH%q;Te{MWE`d$1|c+}V!?vT@C@Ydh;{|(nK?!o$e!dnZ{=CIRV{0d9bWz&z! z6a6FqTb^2uMNLyT|9`cYB;KyRBJ2+@7XTAB(M?|K9WgK$8~)7--mn#N=y1`5Z&YPxtwR<`vRM>VDW|F6kedI_gZ>1 zm46z;cGW#0G_ld;pdUF~IF-ky4+G!h5(~T{$Xh)s>T? z;3GQd_LNuoa9>&snJwp`)^&!qA|A_$7e%B;Pla0V(Dbpt4zqAC zCG#3_Y*W;Crk?oMJyW9t3Ud)RmOkAN{D)M+Kh*ks6h`~k&Ef>c)fj2*wS};r0>cb5Pgglyq)$U1-9X z#kmQ2xuT`zx*b}41~Yv~>~vRcbjv`rw~H~%=9Xt$C@+!mRzj_*;O8?>>I`Wf!>x{l zIxbk&J)2uUp)5N%oz6mSy_5q{MlO?(eKWEOU8o<8U?5tZJ&%OSs6-XMLsJe1(-*zBZ9GI`nFC)l62tm52Kl{P0u96NU-gJ0MgCOiDblxNA=0AhLlEKc4gq zOt0<}d;t3a|BN{or@Z|WL4!Dh9{Z;+o7NdNykZ^ruJho4O3sNTfTAw}M*ao65l4D1 ziN5~TB#b)4Qhaw9n0xm3a2rEAhEnGRhx>*U+sQnBZ)gDv)wv$|XryJ)N%A{9u;V7_ zqNrEA9{XVF(c^nn8SB8rM7T8v{St)S@rD0Bv7K~`Div~f)f438>6u8RBU{Kuf~@#& z-)h)}Plk8kYb8|&If4HQ{pGj+;`KMP5$|8<$N(aRIvtzvMv3| zi#2g8;^@bq{qN7;KgL#%`^&*wF@efdQjPt)kpCB>DPaT)%`w0_h#dzClSB6)$(6my z69u;v@eelVqqFa2?!bOn2>)M+0W^kU_5^$bJ& z@E;X?iNpNfn4i+z5By_bA~M-KpLx2ye;Q&cd6?u|#_w_U>RXp>5KyhTO3R9tdHU!0 zt!?~A{om&BcAS(CE+Fq*RIVpb`enU?*nQw1Hu!wjuOcnt@~mBvG{$Np0psmg=8)h7 z=xZLT4vuW*2uc~-?l7#3a%I2{9w`l8C?fa%to;^5Fh$;-1`cER@O!FQTexA}zkOb2 zC?r7`UhXNRKg3xua?Lsc8gL>bi^na{jLg{ELN4DVsxC9)GHm z1c6Pdqe0t_qTjJ)>?65NyN)?1NBP0{X#B^_23*DfpqR-zf+mA;<+q`iQ`L+o?+oLQ zv4AH!tw@#jj$WK08*uVaBA#ZeWgL2T#2321?U@bk5yw?M0E(N|`!|!@qA>rkm1-Z0 zkUQTU_UxVu!VS|$LJvqW@JTi;GE;^%sOkV^iuK?I2As@Uh!*nTG;D4aK@K?>#9&t# zV5Km-+U2S;bm*53`)zVS1MMMGf7#>?Z(Dsb9sp=*A5_iw%KO&7lj{}-BW;oHYT1P- zmo9v4f7zbbU|<^895=~s&`0a69f_+TkLij745-OSQQ#GaY2%lsD`H`6lJ3vvMee@X zuiYHLF6JPbO@9LaGIHne{Blr6>qL%~Jk;0ru(h@K=TJh2Pl^AEVRYRTEczNGrEb+q zOh__nOSyV9OYsH#>*>-_wo(pwzww0dNB|6fzVLrKg8G)bvl>+I(T9r74#lBuOr7_l z&cxW{3HY)9fqyPf{NvEASlpF3iHCw=N(GZ_NhPW-{z)O7IcTlZNs1kZ4iyHYp$GUc zKYXD`%s6iF3L5gdq@zVU4Dh@}DQ(T!WO;Cw@8L00tGtffOMS-j^>|oW@aVBUWJ^1M z42Ql8A>qnCum8#L^1ow(p++kMqIALej13g-Ee|$r)hZ65jb62}?)R3{`q+9DMQPx~ zKZcT{d1=f{^`z|?+Q3BGW6g=d;#!6OlVKpkfO6wj*#P)QJ=u?^oKd`YfqpyiuVBG| zWy&_~uY`pdY1f`nsOQj3*N?NS4N?ydkxIbOqs$o_TU^Szx%`A?+U>Lac>Y!GmRxqR zA>eKe&=hwoQzES&`M)1|k7gQF_(ST8{I9${(WNXuaE_riC1i$9H2CG)dQt{b^c?E7 zDFZ6*S1La$C45`PzXpuUt{j9HfciDQx<%y};TVmy~&~`&ox~_$u)a9g?)Mxd=Lrhe*paWw=7=b zpK|B$*JTj%3Q}NKUHpeqB-GFc>$Lbw`H-3qp65xY!>$$hulkw)CuBvfg3pUz*y(Tp z;t9Il7ylD~WaEzQly_(?#!;HKPjgsNDC3PYKEZ!E+#JosH9J$Ww*h+=SGgJvR{c-@ z>cAR38iU9>GZi_LB+iCn@A>>g%GnPCz%g&=ONW;9;=kf{L{z$?^Je>ie}teiTd@a< z>qy0Qj8iCNfMZ~A6P(FX!QW=t68aDRZS2sG$({4&mkFoI%fe$vUlkk5E z3FHp8GjxX%3H(YkPhd!pbxNr!!Q82pc$6uRbZwa+N9(ZS4yX3d)EE8>03M_B#1FPs z`K{$T{=EncU6~M7zq4lR?yP+SOU?i2Z6tRBdStqIL6EbX2Ax!gaUU+`3o>Tf+4!H& zQ`Cuu?*0xJc@+2xYOXpiuM8!wxvw^{(NyvC4|M)_vR!i?(ro4!?4e|$1d+QxzApY% zwW*kUS=NuX6Twx^O)3gRlvK@$r>a^5C5{N1PXL1LltuM9pD{?3r}ZP&azgO1M)J0^ zb1Tb!F(I&~z!z`h{yD`kwaejlyJj(`Kv)e8=5A4h7_w9k#>XArT+w$l)t$rHAW0_< z11HHK%fHDd@0hX)n0VrlbwrJmu?G5dM1?O3NpiJISiro~_*Hq!!2>1YjC52PM{SvH z{_zvYJ}l@e^VrCZjX+r=fS3`F_Ew#0qC4*AAK89=N;GRB`sK!n!dG74Q>A>;m;Wmb zD-}=^y3otYm0WMq)HFa0QO8cOoN-$pxv4Yz-VvQt=p{ezB;pJI^hb~(Yw0{<@smj*}LkNB^y z7=ov7DxY?ylvWOn0!DQCw5TvyeNA4zr1GbcouR|De60=<%f&!B2A-vXe&GLNQ`mJ+ zTyr^)7yildKKP%&z(AT}QM-`VG!FRHj2=f9hgHKDiInTA+0FbWoZYE zH1#W^1CKoMzw)|{RLlAT{=2hyu53D}%jNAGj@SGsN@4&^V?H>;Htmp=F@ZvZRURjf zGIAAPV{_I|ksA11v3Ukfe@q`7gxPEkKQTpFWI>6d*%-utVy)i^&e`*HJ&CUl{z25O zDiHO}(To>-4D$-PvyN6#%@CVdDD-{|m>=&Es+$u|uC=eI!?ROC0lIo9m9QLV@dbUe6jzD#)9g2F!+s`v^Q)HVo|Kd%6PK!Cs7^*LN3{zoMQUE1O! zf6rl19WcxMV!%-*i=N67jPbm-OSwOAZ4Ow_oT&G_x~3$sC;I6=;U zL6sE{hl=N-e!x$E;lCW;ieve(qPD6NN~0UshA(9tdIG#*{KFkL;s&XyBB#XPa0N>B z>BKQYimhaD%wF@3W3*#CO9)c*^B*Nz=9P+_{dtfqP*a4xnlj0JZdF91xTeBqRY8Ec zjou~x!LzF8ItTfUOjZ%s6?zX#!CfmNsqPOYMBsO__S>^f#n>dmzHfR1=5XkEI9&m* zLxG;K&nOvX{~xUYpuRC(qOs(7r=$I=#XoyHqGRNf89`HVq#8n3$)1O&fgZ7%W+7T` z6z_c5_!nnaYl_mSBRWm&Lo^5?LdPbpVzYt=7RovEjMS|*td zaq7tpy*@M{bW2q0p59^|oEO>bCN9hky~o789Fk+mW=L05d>!=<0M^DIIlQ@&ba!5O z;D17MQq$+(AyY*|RN2uL9Ucgtu9{)0L?**N&e zFBygrCWY(v)7EphVOW>re^^Au^s_X;l-xMRTKq9H{lI@z6T4N<+?8})1^zqYi2b+l zZ>-MIo3_za#(&F-W5dCfn?K6Sqk(>X%f7hpPmxceEYInE;rCW99;Gu+O zKBWuO#?U98ihAA`hE@kt9J|&yoKdV*3~Sr=U&%1c=u-p)A)rIafrpV^Rj#U)gDmYl z&#Cl!V0`zdNuOVWm6$Z9WsoI?2$b!l2*_!Dgz`I8j7@2$u%o$F?(KOOiuzYWUo@D4 zdin)6^pK~&bPkR|1RZ874}d<`Zr9br_^-ZBaEtm0r02juBpg&e!6pS+$GDEd+}VI5 zVEW?7SSP5s0)K6l7LI1Rs+7e0+8?ab$OPn$*1G$Ke~g%|@|E>SRv@Sedmlg)ry(=w zenvJuwaSkn5O+v}3;(FQkUl;Kv@7Cktb8ZnIIheSB8pu77{)d!gPj9-h(5ps<>0^T z6d^@^;Lt9)_;1hmHX=Wu{(Pmw5dA@moOxqrh_(_KK=A{2Zx8=ne(t7lezq%_JQsIH%++p z<}4ZsaY4qw)vtZTZ+YwjqBKPVm!qhtrhd5kohb!-Pw~(sZFcg1+D`aa!ADif45lFx z_X7U=doWkz?JY#2E)!RGwd;lspsq1Ccb)i&dI&W9jiiYr-*bE#^xF)-854J2*@qpb zD+pk34Ez^jq-BEf%?%tV5`I#amwtdgzGZ#+9|4TySRQYY&ep);7Y>akjLTY|Yd;4f zG!b=p`vQG(Rgda;iK_5t!+7+SMPYaA`m~Asjw-kn>=ArZdJ6pLSM}pbbME7P=WE}r z)i+=#Y%uOXDo?gLut^m;bSdTZCEapHINX>0e*)W&+!AB$hO9H-B;^_GUU1-^sdylC zs-up6vG7vzY2G)1e-qpO*gn8};-9iJUyXb>k7+y=05tDE9-Mo$ebfSotIzR8L zP^&#KJQ(YG1kaoOkN#Iu8Te+70mkQtFzAAR;=j6{B-9qZD_C;gd3NscOW2E zxVgZ=s!>x`)%O3yKY8eIr@r^#mDen31petrv?SyQZPU6X_N{QB^Z#D-s>*}kpdPxX zd1t96o2Pzu|9x3+)6WP@6aYp|)_;$>iL){OZ;k*vTa4+_1LNz%nF+qBI>bdr%KWd0 zKC;Z)!@D4_&Z*|OL3FZ9VJNRn^GJnd(>w%NGJgyZbrZgu=+h6433FL6g_`(oN^XAa zv#Ov1q)X?QjGa{{;`+k?5;SfXmOJAQQV0emf&y8=#4U%UKI_21zx~EqqhnUFwaLCZ zT&I;7g3UPSl!*Ff&WO3&2B!^M6Gz`J^U@xHe-|1YXgi*3v~CbeyTB^@PF)ur$O?;g z=%|TG31R$5vD`7g@PEIJ;jUixE8P++@gHA-<34twGsK^rIvr+$7`uyjB>k2CFIg3U_Jn|CQJY3D4iX#pEfFArOY;dF4?e57oeVnjTPfXo z5OoNwtQQPsn|jZ_e}^p)P90;B;=oq;-=b2H)V7&pK8r*hDj;8b<#SJW_>2cuz<=sE zg?Spk>Bl7O)lJLRe*=3Knv9X=ib9v&47%8h?s`Rl)8MWYwBX0u_O7M!^=aTZ7)KKE#PFw zy1&|9QR#Tl!GSG|5**mQ#DT&325(;D~^Hs_rAv zspC^U7cg#m#BC9LOB)eq!1u08?N^0)`?8 zKyC4UVQ7vZqs9-CQahm%Ec?ribK?^*u`Tq*+EBuG?4a`G$z@pJJ|TVZe>iO(@r#Il zy*i!}9jqzNtF&jjE9y9Ru*itQjd+_685{vjBI4!1|6oP(E#6Z-jbMT;`1gXbnd=_; z|G4j{C(cm}WM@Q#s3kw`({Q`*{9mI(%ka+RsNj4VKS=}4 zaBAfe;D4^IOWf4_i*hUpTLFHxBJt~sZ9nH?h1}+Vth)JMxqwk60BJy%Ls|{i+Se0m z#Huw5HJ#M|f&X3R^SR4vR>1-@(~r@-`&kv9|G@tv9joZ?r{zfIRRA>o;<|w2Y!AIf z{zI!g3J@Z3{WuYU<%Y7I0Ug_D<0POx}GhwWNlyDtkcx2d}K#CG5OFK3-3B5j@9 z_VeOS{`a*=H1NJc-P+{e!he0?KZycNy+S%Rz{HrvEM1m{{) z^F=OcrD4J;j#l~_5dnJ|&yT?GshrH$#eZG@1pe#b|5Z8o`#fnl_(!*z>@UyvNjo0! z$sOw`HJ=sq;wKEYB}Le=j3^m5auvV#rn{HK&5cx2|DA-#VjL2Rc_@_f1uGQV8`{yY zRf*k+1K5s(A?YK9s)By!{D>c-K`lM~L<3jeXv^!4S`!q;9@DasG7dfgQYgT?eeiom3|NVQ9wyz_plfMOXATcrZgbzBM zfW2Dpg`_zw?raLIy2@Bw*O8Yu9>xWO4nGhh{Krd+1N-9RZ^0B8ikV}0lJWVrZTI5v zy}~rK;m9AhD;yVqda;UD{8SvwzN)P48QKHF1^nN^BzT`sRPssZWdaGrnAuk5N4iq(AP=!H#peF(*ihyyu%W-fx^e8viEm;e{ z71B8Dd)Q%q;Gbek=SDzdDC*c|>aAw;jo=tJIjCpj)U9dPI`|*u|KcJYCerukutD!P z{8Wlz-t*zcM!r|B9X6LmTEn)N|IYrVrX+!8CGlyzsqj`XLHNF{wc1Iy#D7K8?f#%E zpX6*cLe^&+uSa-Ko3-+-L3~4QV1}JQknl&mR;{?azyFNS4sMu7XpGPq!`R#xv5s;g zSjm$i=P(X3LTC=dC)6k&KvHzt%yp`V7k%5Idh!8np6{`KWI6D_f9Lhc`W=mD<;R)a zJtCV^MqYsc=yQND?+RAC_!or&kKU89bNY5#aPhCxWphOH;HxQLwc82fA2!Gdb~&{+ zdfk|p`MyabBFBv1IENF)|G0KJzU)4ONrQ;~tF`3kFk&J=!7T z|7R^#xV}r!Uq3ZMEw}8@$V671Z$|!KJAba-e~2+I8QY;nosCq8Et}79arl{b@DLY; zhx5Ma5pdl)M${_8uA>w*6|azVD(+jf2sG;R04@Q>m1xMtzuaz*?& zfQA45k_B9|xeV$n|Noa6_utC;WJ$fvzd!$b2^_}`bl#SaD@-QOJ5*W35B-M!eC7YD zpY^x)pS$n`-s!@&a}Z}7424sTi80i#P8F z-YV<=CjOt-6aU9QVznQfVnv${+;5(H@OtkFI1ks&1U*#I4El~HbW~bvD35(B5`Ea0 zF;XcL`$iAGTK6%>e13j)XEFi)N7s7RT^^wv{LA;>_>Ypv|0RU4KA04jNJFS_4ABa@ z9jc56sP0g;SzKjMe&au* z=c+OA-*8ThMle9aA$Zph{Fe&5szBwDnBg12ri_^HW0YfA~h4*TFxbha2CY zj|>|R641cnSGGZG-ktL%zedmEngMeJcL-S`kx)L8}Nac7VccFk*mMW#9FF{F#R};H5Q3pTv=R%rQ{j zQ#1iO`#eOwDpvKe%T_}q;?Atz8MvikryMsslIhMkjVyek#ekOX%S_#JEc@L2hm zKHzBcuZW=NA0WN?4*bU4Q?gOfuCt`CSl*vqz4tX=>IYdPS)QjRH<0Hm`Zyo1ocVSX zi8V10pv+UxNY!33mpww#pp2nhFk;g-#^003p2Ux(tnYxbhKlEM*;Vp|@sCx=5X8Vd z*UTX9voZYl_w76I&-ek3a={^^udw~4#s+dnvLV=PuN@Q?M!S7vj49bOhPfwXZsDhI z^V7tC$KjXt2rihYpV~Uvgg>1mNpjadzagRSC6{oll<{9VY<}P$mL3wNWK;Zj8!jj! z4cjHo9)ExS^J?=Ux>6Ng7;3Dgdv0O+z<&e(~o&1&aWbedbsX-;-O(uS7<&Q^Gj%zwqxqLvoJb-T#6=Bx@CGucV{I ze+&9-aYE%-Yw9R|b_U%e(pq`1`18q|T5sl9pl(Q5gceK9LoDQfJi#i#I_G-}DXC;D z=oI2JxakMf2%I8xnskH|TdEbaBi{$dVOmrEmzR`!m~C=Ek!`j=rm4vm^c(*X zB=JxLR-%tQm#fEc*&>Vjphgaw&foDpny87X&klJ|W#ftDNB%F@?!x~D=15e&1Rv1Q z+8ZR02wP-@b{gI?2I1At2wwsi6?qtJeH8%h2QOkyP__xDjweG^{mczq>)RiB!;JBN zFX~DIR^9r45ALgDrF zu7C{B=ub%FCNZVy6ZuZL?Ra0s&KqrUJzA@>CSyU(z@{yyu+Tj&X6$BGF6`6KX!pS$|< zJ91T3DWX0@N~^3GOmpI0aZC=mU{5Od5F)Kf8c)@#}@lneN$4? z=;V-0d(SAIxIPw|KL7BYW`J!Jfw~Y8JPOuzZIur zaUy8`7yg?+^!K*swFw>0zG*$466j6Hf#QkhMQB=fXAFX7oeh>fx z6Zjuu75zUN=qU1np!j3zceH-d=%?~+{py_>?k?s0EjGfq9IWBl*jAj0)QcHoN?_ls z!eVET8OB2Ac5kV6qQrY0d^TYRe&0{SVznryE6K)-Od0bek{^Sw&x;dwS1Rs9cnQx% zg%Y1hf;ml8=6aSaOnWn`oywfJ8Iqk!>94Wf_>|#WgR`zjD}w91OAsbQT7b@{d>c>J zru|zs9WVo*{A90%%KSCfT4r;vb-NK>|hcL(~k-z!EerfEe^hrJX zhQug-cEpciYrF^%vtP;+q4&At62gKP6j_beZzOyO^UIKJd*CW{ zL-JE=anBPUCmQa z;7a`Kv_A--b#52%3-9y~{IdiHaZr}2Jh;U+ud?4?;QDG+8@oRAT&pK6JA(**^&T%4 za>Tzefq0F9Y?CpFyGo*&h#yRb_>N(V(|F^50_yuC=k2oI21AdU&7u1nPE)Lj&pTBud=v3KQekptrFiQ|zw5^C z5MnPS+l4>66eJw{eB-}N!y=v5WB3RZ`;AfH z998HwMumpV&&*cDg_e+pwrvE?6nlrpLp}#65P*rgC1);fAUO}UW_Rc7$-mt>V6-x! zU!%QM8f#zY7`HDZ!mfb){{#P2!T^n*{bR+R(C6J&#)ov2m^JebK9DlKq*7p2hu{8U z`*r+fxI}#c`moS+{rD( z$C_$S5XM>FeEW_6%KTr++cvR|0jD3_0;($<1g-+Ir!MNQ?nmy_aXuXL`A1|sc#)CX zpjq+T=>sujk;FkVwplUK`w|Bh&Ed*#{4+}=>7Ae37F+60*LILSlR1g7EP2vc#dpGg z>;)dVRLuOp{R9S|Rjx1YglWcrn)+1(Rpg%SG=cweeWm`=lFm%bi3rZPU`3fWx2!^+ z;js1k%m1kP;rxei!v9P(C4v799q0e%-ph_$V=8CUP*#kl>XHA0T&nUxMDStJW$olSX})V`pnoDsM;?wE@nGrX zg*N*dJ0fAy@+*KuB4n9W!vBeb?xZSlYkjAG7%bCV_p?`c98{snEG>zpuZ4EK+#Fe8$%>Eqep4;VK+-(%gv{!hieNBO7e| zgkmEei)h^$yKj6=a(~86@6(d==E=et^k_vYzY;|rfR~PML@_NFbZPB}H`+!5(L32& z&#HKOL|*b%5|4G94~inVntzXeCI(Y(U;o*XpA&t9lo^1S^~nqX(%_&>{Uf!fD)HYw zSx_-;sk8nOCjOpsp96!y|3Re1{>VJ(;%}e8kj3E*BKP2^EAYR=<8rIp$y%g~?0#u;`P)jJFAz(41JY;;Gx%(10o za!lo4A!my9OSKIAEEM)Ka*6R@=D*fpe@-5d*_fMFwh|&OoQC~NW7mJH=rl9wdDFQK z`%>1D?^-jj*?_6$_tkxdPW?StXk%Ko<17}~vlAjN9iJ2V|HxjEr{XX`HdLfZ#7@(2 zIFqTZEo5L}8+bLr1`y3Ooe*f-NVy<3jxFo{N z;ViUL4K*j+v2Z?d!x--}5Hx@Uc#VJieq$;JjWXb&o81t#*GH}sAyF!A3=F&TzH+Au zD~IESdwGO|v!j@N>+dL&WAb`Y3I9BsBLv$TV@fU$wa&m((62rlFp@yBuzCLv{LjHZ zho3B&f@Zpfl};HjsNml<*BAY@X@767Cb%=XMOcE&;*!mA@wtbnrj0Kh4IJuSTUg?Wa){>6hHpuxs(T5>soC#WX@2y; ze^%QLBn}B_mIS8pPearL|FoW5-xTYbfy<{aGxR5os{CJYLM7XLO*tbigk4}exiK~0 zS{5;ld*`u6ae>v3nEsys!3kix<^TlNFIk7qC^f@ghH*70UE9Ws#6r_3t_uxUi`OHR zxkW!PvWty7&miK5Sa~sQrVw%5;D1du!+Nc#2$Ti>yZ(Xy4*c^!X4Sv#-)H(wQL{)k zeGvbS8DBtuWtahLv!Bqb^kH#ot4jieheE@O;q22fs3FkYvz&EDEjG94+!f02kZx?E z@=y_R$dfE2S`0CtQv=#3!V$weR!|&>`-weW2MMPfhfH)OyzgdAU{XaLjXKaBh}Q2f zdUE>lBL7ql2wF*0e^`+;EvQx3Hly{&;&m1&8+0+7GoO%rEtx|dmsb8wvGLTR{6;&M zs?RFq9@?lZ4PWodk{j`Z;)gRUr>onu#cM$yjmFaq*BV%X==#i%LuQ*K;Dj|kvTdW1 z1Nxz=(7_qA!(0}Q8eE_C7LEBE0rhB5fxHPJ!wkwT6+7$TLeY|B$pX7sFN{8a-RlMp zB}k2DM1yx3SH{17(;~}IsQSLm!<{24zF_B;4=cWqq&n37T>matqQzQ5{$gfpWGU9q z`DEkNwHi+zC(%U5%dS2D#y^{Ye-lLF|FzrUX_bklIl{;GBrm@3TP2LN7*#W%B;zAa zY=IJI5(H#jJZqC6~+z* zL#Rtc?+uyHf_>I(;D26GZ?U49=bc^Uj2ss{>WhND{Edn>{-y629vVO#7WKtUo_?$A zng4^Poa-O?ADm4P>Y9{%TqDlONs)89C#t8T_0(5GO#@W`wTnZ5iYL0XLIJ5LN{}Iu zDm9D~FY%yi4f?=8XN@eZxk;6CK{&cqk1N%6_4G3kr7Ub&9l@G^N?g3(`?FPnT{#UwHaOgkXS+3)Y3CI0yz_{U=X^|BOb)9&a7=Vj+! z1-*9Ounj}wUpiCu z+mBJ{P%dkzgGepg$HO{@R-BslXlo7C2ev59oX!)OvD-w=kWQSaAEd4=A+`CKxLqsp z1yua#o^!rfWCvE^|G(ScH5PY5F8gZg(KjpSZ35eCDAWZ0$q5~$0mI#`(_C`HVSsBR zwjwNWCrakge30?>oITdz!SWQHPtEty%{LDH-<7-ovul@IBhV0oFq)7Ha)0B00*uJ6 z-8cUif5}b(3xAjKKfr%Oj1Dx!QoUPFMa%@G5zIU!!6hcOD7m@j%Nb=u9D`wCWzPJ@ z^A71&>86`Ebl*ePk!$jL50zWG+*e>@Q%}{o|9|6uFNz$Lhdb7D;*_Cvo1k#e5~%n%uYK!785c85v5(vQsl&w(y9nX1Rr ziq3|(ufn|(Nw0+en!rSH7R7?4yZ}vu{C88#cM+NSULz}8h*yjUGA+F5_EX-_&sfD! znWC(O0r0QZ?JI`I!1e3Bj%uX_sU-ZH9ziKsrjh_=!_2wdcBpF~B)Y20MdJ#R4=WL`R(~j8j&X6IdtgG)T0Jx2aID`kUoNhHLVF;D63Q))7p< zO&!+4Rx{!)ndareOkpqKb3?$~wNGTS! z4shIpgO2XUUiH9l$M4owX^>WIn5|^pwXptF#=r=-#u_dv>e}-&*kS=(M(%n~LnM1Y z%{mjF0#}9&lC&U9*cSIYjdj=DL?U-+dZi&p>ySWs)4~K62g8|p%G_s=DJAV$T299i z`zza_k1ipg&B2 zRXPSy$_Wws6<(zMs~`B^wQUIwBr!-!oWlOT6SwsjnjZL4*Z08xhpzghsMF?KEDhd< z_N|=V=fTKcSG0}nitqbdR@#txTg~a^7}!Lqq)Wrv!N9sb>sCT5rlTqRGv-HzoWs1? zT%EaPCD%3e@0TzDODcfcUhH!le-Qsh-W|lzt|e$-_98A_Ld)UdT01vV%n#b{C;qE6 zlpY)Lh&kig3Gwf1RClG&dWlw}DzBup&Zmhw3xP_Vw2X}A7>j%+{8!@NMIepa7@JYD z45VVd$H-B+jlPtfANjvy?9RWxa-&QZIVJIrwe(jLTToTT<6J~FT{j2MCds>JWxQ6| z%{df_oH;q@1N}@1F=1fH$Yr|t1fY9KK1iE70zzY=09Q^In+XE(DUNN-A;4-w0%L?@e zYdXh62lkk>{99}DZN$)kwF9F8Yu5w+s1+Twpu|%AT80>oFPG-9&Gg-sWz2W5Q1;!6 zJ{#NDHXwEKe2*cEzklF=RPPl|QP%d8#>o-|`5zGHu%}L~!)uxU`MQFGE^BXa<`7kP zD6L%D&Gt#M)ed)C_5Y0TH_l2mjfZn5qb?UNzw6YnIG56X__HkAj|QOY`nSyKdB05C zQNG4ZEvm}%MKavIFfA+TIp8(z-`a%!jde6nA^shc9s)4Wj1Fd(IA$`hGhMSE$^#VR z3MSnCL2`!uCk~k(_^+YK|9*Il4igIYRh%FeheLeUykEOLydR4>ofFhEM-J`xaT;?; z#1#NKhsQU#R4AB35uA*bD4KAm_BH-%4k!>nj6}`H$F0TG*Bfi1t*Lv zO4F+T#wY@+BRI>ni3K~zuD!=m`{JM6!D6Ac8sn*hZpt=VWPRaZ=;PIcQf`7^rgF)H z|3ciC3CTJH{$aGh{)8FAAoj^KT(bhe%?z=0>WrQkxw)sn*0CV9^+25Se!Uj>7q)hg zn}bw=WDJ{9`99K*zS_ONdUBSuAGXP0)^Sl#tXTW z#{$Mb?iBtTuntEZ0{gSaoAb%4oKH9F|A8)gLk8Yxy*5evR^qc*w1HTJ=qYbl^96Dl)om3O6O#x3h{PyY`^m-9Iw2FE_!|{5 z`}Ib`c@X=8o$JZ=#6Xee`F+%{J&y)GjEfS6C4*a$30^8Vb*j>^v?s?Z+}rw>%7mfZ z32F^&D)}Q`P=5Pc^Yw};Wha1ny$dY>R5Ig=55eMe-Bwp@p*gq>GTXB`V!E(^Q$Tc4 zT+a?_7>pdGAQ7}*FX)vlfw+L3D1C)osXc~4R&+NK`yoPi=xC>MOu?#g)9Ee#H-20Z z82=w!zy68;au?gBSzm>}F#j%_GKaYwa0&k=@~MOW@7Sgh`fN8INE~u-1WaO7Bma@D zs+(P8=uO-KGF)P!=`GBj4*sE(58k-q)FZaFs&N#y4>eiijcr?9xYf?B7~obtFx~Fn)9&%rdAXz7e(~Fz0b`a{`V9pA zc1op%nhJJj0Vw=8VsK>hG7sMUmv$fY#QgWFVEoAc3ehM2U%-D-@H@@mZPsLj;l^k5 zG8ShqP$k^-*W#tB1OM4nl@55~UK!Y2)Z3sR{JRi2H=-o`#(!n(q3=HX5p&uy?oDVZ zPXqkG>6VL)qVlmn6ha)%(NA*>cCO^nj>sr;X=(eJECA0`R??9}M&2P(JL{mo-KaB|RXglR(ohdfcER9eVqXi#7T@EIu(o*b?I^TX@YJ zQo?X?e=o+CE#B4xyi=~5cgZLISx4BN`%d$zOTGMg%C}>G`W9d`nYIpvY);_JjsJe% z53a5IG<{BeI?=G^qfG+;Vap)Rt|&QJe~t2ci2^F-Fnr$}XqT9}jtPSBD&nHj#&b*d zT}-j(A)ri`2&b+YaDE#Hl7n>tCi%XTFiNY>^xcA6yZ6@K+gG_K%43lUofuD@zhHCx zXZ)8AI*y&<2J6NAKM&pWwXT~4MxWc8Gj*fjn-Li?Q^bF97HUW;;xnECt6^8^RY--n z-ouB9_`KrPTq?-FX)EKLG=%~n@Xz_k1YN!+_)g>n0%N;Ho9GaZR-jFFGnQ%i3+vRC zxy!NfKtB#oe&K)QQ?X3sD)CYI8gn`Fp57ZpQuO~4K!jSJ&J)|s1=Zultrd(UrBmeh zBr{yV&>N9FSLEf8#shm%~ZdRA;q= zf9o4e65i4p|Hi)(k@8BX*c=Ylp%&RI)UIOzT&p=-5Il)m^6~=iy)E6%{KERB%DTm4 z=#9{8#@n}FV5^yYt@IG6U+?`ub>LqJ8$*;-gfFs(T!eX}op1Ywb}qE3)eGDoshW=v(ExKRY$yK_u3M>`>55o0Z<{0pFe-SXXaUd zj{u}bnXQfeG!q+iaOz#Fgn!MGJLKN{pJhAp&KLe;!ca%`=77BCxoL?n72hwCv#cgX z!*E>v<*{8%>Fz!;D41v3eq(S=zUEq}K=iuaKoCQMdEch4T6^rTw==|0>6xrz$n&?x z-)H;AVAiqTb(03a=lzZ|ut_Ktcs9pEjMx z5DTIn&Z_01uHs-rev_<$Q{EsBg4`2^8QGTpE}604J8_!|Ov*+Y1{Md^T_kVq9e#WH z*R87()683Q?&FUdx=y4m{pZ+AmZlq&eOMAP21C4g zaJ5O3V(5unw9=w=3-=-ZHCWeE2kMSuNK3=;@9q%0D`Mdu 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%0DF!nqDa8V8&nBACjF6{#z<)a)LS^Cq$XFWtfKcMK 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

    SAST Pipeline Overview

    - -{% hint style="warning" %} -The following concepts are covered by the compiler design field. These concepts are not fully (and probably understandably) described here. If you want to know more about compilers, how they work, and how analysis works, I **strongly** recommend reading:\ -\- **Crafting Interpreters** ([link](https://craftinginterpreters.com/introduction.html))\ -\- **Compilers: Principles, Techniques, and Tools** ([link](https://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811)) -{% endhint %} - -### Lexical Analysis - -Lexical analysis is the process of breaking a stream of characters of source code into a sequence of token (also called lexemes). Token is smallest meaningful unit of any programming language. - -

    Example of Lexical Analysis

    - -This phase converts text (source code) from string of characters and outputs a list of "categorized" words which are needed for next phase. - -### Syntactic Analysis - -Syntactic analysis is process of taking a sequence of tokens (from previous lexical analysis) and checks it against grammar of a language (syntax). The goal of syntactic analysis is to understand structure of the code. It determines how tokens group together into expressions, statements, functions, classes and other logical constructs. - -

    Example of Syntactic Analysis

    - -{% hint style="danger" %} -It's important to realise, that lexical analysis does **NOT** check whether source code is valid โ€” if the program is written correctly. \ -\ -Lexical analysis โ€” break text into tokens.\ -Syntactic analysis โ€” does the tokens make valid program. -{% endhint %} - -Syntactic analysis outputs abstract syntax tree which is then used for further processing. - -#### Abstract Syntax Tree (AST) - -Abstract Syntax Tree is tree-like representation of the source code and it serves as basic unit for static analysis. AST omits all irrelevant parts of code (such as whitespace, comments, grouping parentheses) and focuses on logical structure of the source code. AST is made of nodes and edges, where node in AST represents a construct in the code and edge represents relationship between nodes (parent/child). - -

    Example of Abstract Syntax Tree

    - -AST is important for analysis because it allows programmatical analysis of the code by walking the tree (by using visitors) and inspecting nodes. In SAST this mostly means by inspecting values of nodes (e.g. looking for some specific type of literal) or patterns of the tree. - diff --git a/docs/cli/analyze.mdx b/docs/cli/analyze.mdx new file mode 100644 index 0000000..2426298 --- /dev/null +++ b/docs/cli/analyze.mdx @@ -0,0 +1,56 @@ +--- +title: dart_shield analyze +description: Run security analysis on your project. +--- + +# `dart_shield analyze` + +The `analyze` command runs the security analysis on your codebase. It is designed to be used both locally by developers and in CI/CD pipelines. + +## Usage + +```bash +dart_shield analyze [path] [options] +``` + +* `[path]`: The directory to analyze. Defaults to the current directory (`.`) if not specified. + +## Options + +| Option | Abbreviation | Description | Default | +| :--- | :--- | :--- | :--- | +| `--reporter` | `-r` | Defines the output format. Options: `console` (human-readable), `json` (machine-readable), `both`. | `console` | +| `--only` | | Run *only* the specified analyzers, ignoring configuration settings. Useful for targeted checks. | All enabled | +| `--exclude` | | Exclude specific analyzers from the run. | None | +| `--help` | `-h` | Prints usage information. | | + +## Analyzers + +Currently, the main analyzer is `code`, which performs static code analysis for security flaws (hardcoded secrets, weak crypto, etc.). + +## Examples + +### Basic Analysis +Run a standard scan on the current project: +```bash +dart_shield analyze +``` + +### CI/CD Integration (JSON Output) +Generate a JSON report for easy parsing by other tools: +```bash +dart_shield analyze --reporter json +``` + +### Targeted Scan +Run only the code analyzer on the `lib/` directory: +```bash +dart_shield analyze lib/ --only code +``` + +## Exit Codes + +* `0`: Success (no issues found). +* `1`: Issues found (vulnerabilities detected). +* `2`: Software error (crash). +* `3`: Configuration error. \ No newline at end of file diff --git a/docs/cli/index.mdx b/docs/cli/index.mdx new file mode 100644 index 0000000..81e7a74 --- /dev/null +++ b/docs/cli/index.mdx @@ -0,0 +1,83 @@ +--- +title: CLI Commands +description: Learn how to use the dart_shield CLI commands. +--- + +# CLI Commands + +`dart_shield` provides a command-line interface to manage security analysis and configuration. + +## Global Options + +| Option | Abbreviation | Description | +| :--- | :--- | :--- | +| `--help` | `-h` | Print this usage information. | +| `--version` | | Print the current version. | +| `--verbose` | `-v` | Enable verbose logging. | + +--- + +## `init` + +Initialize `dart_shield` in the current project. + +This command updates your `analysis_options.yaml` to include the `dart_shield` plugin and adds the default configuration section. + +### Usage + +```bash +dart_shield init [arguments] +``` + +### Options + +| Option | Abbreviation | Description | +| :--- | :--- | :--- | +| `--force` | `-f` | Overwrite existing `dart_shield` configuration if present in `analysis_options.yaml`. | + +### Example + +```bash +# Standard initialization +dart_shield init + +# Force overwrite existing config +dart_shield init --force +``` + +--- + +## `analyze` + +Analyzes the project for possible security-related issues. + +This command wraps `dart analyze` and additional internal analyzers to produce a security report. + +### Usage + +```bash +dart_shield analyze [path] [arguments] +``` + +* `[path]`: The directory to analyze. Defaults to current directory `.` if not specified. + +### Options + +| Option | Abbreviation | Description | Default | +| :--- | :--- | :--- | :--- | +| `--reporter` | `-r` | Select the output format. Allowed: `console`, `json`, `both`. | `console` | +| `--only` | | Run *only* specific analyzers (ignores config file settings). Allowed: `code`. | | +| `--exclude` | | Exclude specific analyzers. Allowed: `code`. | | + +### Examples + +```bash +# Analyze current directory +dart_shield analyze + +# Analyze specific folder with JSON output +dart_shield analyze lib/ --reporter json + +# Analyze but exclude code analysis (e.g. if you only wanted other future analyzers) +dart_shield analyze --exclude code +``` diff --git a/docs/cli/init.mdx b/docs/cli/init.mdx new file mode 100644 index 0000000..ca898f8 --- /dev/null +++ b/docs/cli/init.mdx @@ -0,0 +1,40 @@ +--- +title: dart_shield init +description: Initialize dart_shield in your project. +--- + +# `dart_shield init` + +The `init` command is the starting point for integrating `dart_shield` into your project. It automates the configuration process to ensure you're ready to start scanning for security vulnerabilities immediately. + +## Usage + +```bash +dart_shield init [options] +``` + +## What it does + +1. **Checks for `analysis_options.yaml`**: It looks for this file in the current directory (project root). +2. **Updates Configuration**: + * Adds `dart_shield` to the `plugins` list. + * Adds the default `dart_shield` configuration block if it doesn't exist. + +If `analysis_options.yaml` is missing, the command will fail and prompt you to create it or run the command from the correct directory. + +## Options + +| Option | Abbreviation | Description | +| :--- | :--- | :--- | +| `--force` | `-f` | Overwrites any existing `dart_shield` configuration in `analysis_options.yaml` with the defaults. Use this if your config is broken or you want to reset it. | +| `--help` | `-h` | Prints usage information. | + +## Example + +```bash +# Standard initialization +dart_shield init + +# Reset configuration to defaults +dart_shield init --force +``` \ No newline at end of file diff --git a/docs/community-and-development/changelog.md b/docs/community-and-development/changelog.md deleted file mode 100644 index 19ce3fa..0000000 --- a/docs/community-and-development/changelog.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -hidden: true ---- - -# Changelog - diff --git a/docs/community-and-development/contribution.md b/docs/community-and-development/contribution.md deleted file mode 100644 index 0ea113f..0000000 --- a/docs/community-and-development/contribution.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -hidden: true ---- - -# Contribution - diff --git a/docs/community-and-development/license.md b/docs/community-and-development/license.md deleted file mode 100644 index 8af8ba2..0000000 --- a/docs/community-and-development/license.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -hidden: true ---- - -# License - diff --git a/docs/community-and-development/road-map.md b/docs/community-and-development/road-map.md deleted file mode 100644 index 3e8b55b..0000000 --- a/docs/community-and-development/road-map.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -hidden: true ---- - -# Road Map - diff --git a/docs/guides/background/architecture.mdx b/docs/guides/background/architecture.mdx new file mode 100644 index 0000000..6c579bb --- /dev/null +++ b/docs/guides/background/architecture.mdx @@ -0,0 +1,22 @@ +--- +title: Architecture +description: High-level overview of Dart Shield. +--- + +# Architecture + +`dart_shield` operates primarily as a **Dart Analyzer Plugin**. This means it hooks directly into the standard Dart analysis server used by IDEs (VS Code, IntelliJ) and the `dart analyze` command. + +## How it works + +1. **Analysis Server**: When you open a project, the Dart Analysis Server starts. +2. **Plugin Boot**: It reads `analysis_options.yaml` and starts the `dart_shield` plugin. +3. **Scanning**: As you type or save files, `dart_shield` receives the file content. +4. **Rules**: The content is checked against a set of security rules (regex patterns, entropy checks, etc.). +5. **Reporting**: Issues are reported back to the editor as "Lints" or "Warnings", appearing in your "Problems" tab. + +## CLI + +The `dart_shield` CLI (`bin/dart_shield.dart`) is a wrapper that facilitates: +* **Initialization**: Setting up the plugin. +* **CI/CD**: Running the analysis in a pipeline and outputting results in formats like JSON. diff --git a/docs/guides/background/sast-basics.mdx b/docs/guides/background/sast-basics.mdx new file mode 100644 index 0000000..187da20 --- /dev/null +++ b/docs/guides/background/sast-basics.mdx @@ -0,0 +1,16 @@ +--- +title: SAST Basics +description: What is Static Application Security Testing? +--- + +# SAST Basics + +**Static Application Security Testing (SAST)** is a method of securing software by reviewing the source code without running it. + +Think of it as a **spellchecker for security**. Just as a spellchecker finds typos as you write, a SAST tool finds security vulnerabilities (like hardcoded passwords or insecure network calls) during development. + +## Why use SAST? + +* **Shift Left:** Catch bugs early in the development cycle, where they are cheapest to fix. +* **Coverage:** Analyze 100% of your codebase, including rarely executed paths. +* **Education:** Learn about security best practices through immediate feedback. diff --git a/docs/guides/community-and-development/changelog.mdx b/docs/guides/community-and-development/changelog.mdx new file mode 100644 index 0000000..fbfa2f5 --- /dev/null +++ b/docs/guides/community-and-development/changelog.mdx @@ -0,0 +1,8 @@ +--- +title: Changelog +description: Version history for Dart Shield. +--- + +# Changelog + +For the full version history and release notes, please refer to the [CHANGELOG.md](https://github.com/jaroslavnovotny/dart_shield/blob/main/CHANGELOG.md) in the project root. diff --git a/docs/guides/community-and-development/license.mdx b/docs/guides/community-and-development/license.mdx new file mode 100644 index 0000000..20da951 --- /dev/null +++ b/docs/guides/community-and-development/license.mdx @@ -0,0 +1,38 @@ +--- +title: License +description: Licensing information for Dart Shield. +--- + +# License + +Dart Shield is open-source software licensed under the [MIT License](https://opensource.org/licenses/MIT). + +## Copyright + +Copyright (c) 2024 Jaroslav Novotnรฝ + +## Full License Text + +```text +MIT License + +Copyright (c) 2024 Jaroslav Novotnรฝ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` diff --git a/docs/guides/configuration/ignoring.mdx b/docs/guides/configuration/ignoring.mdx new file mode 100644 index 0000000..9962053 --- /dev/null +++ b/docs/guides/configuration/ignoring.mdx @@ -0,0 +1,48 @@ +--- +title: Ignoring Rules +description: How to suppress specific security warnings in Dart Shield. +--- + +# Ignoring Rules + +There are legitimate cases where you might need to violate a security rule. For example, using a weak hashing algorithm for non-security-critical legacy data compatibility, or hardcoding a non-sensitive token in test code. + +Since `dart_shield` operates as a plugin for the standard Dart analyzer, you can use the standard Dart mechanisms for suppressing diagnostics. + +## Line-Level Ignore + +To suppress a warning on a specific line, use a comment starting with `// ignore:` followed by the rule ID. + +```dart +// ignore: avoid_hardcoded_secrets +const apiKey = "legacy_api_key_that_is_actually_public"; +``` + +You can place the comment on the line before the violation or on the same line. + +```dart +const apiKey = "legacy_api_key_that_is_actually_public"; // ignore: avoid_hardcoded_secrets +``` + +## File-Level Ignore + +To suppress a rule for an entire file, use `// ignore_for_file:` at the top of the file. + +```dart +// ignore_for_file: avoid_hardcoded_secrets + +void main() { + const secret1 = "abc"; + const secret2 = "def"; +} +``` + +## Best Practices + +* **Be Specific:** Always ignore specific rules (e.g., `ignore: avoid_hardcoded_secrets`) rather than `ignore: type=lint` to avoid accidentally hiding other important issues. +* **Document Why:** It is good practice to add a comment explaining *why* the rule is being ignored. + +```dart +// ignore: avoid_hardcoded_secrets +const publicToken = "public_123"; // Safe: This token is not sensitive. +``` \ No newline at end of file diff --git a/docs/guides/configuration/options.mdx b/docs/guides/configuration/options.mdx new file mode 100644 index 0000000..6c96a90 --- /dev/null +++ b/docs/guides/configuration/options.mdx @@ -0,0 +1,58 @@ +--- +title: Configuration +description: Configure dart_shield via analysis_options.yaml +--- + +# Configuration + +`dart_shield` is configured through your project's `analysis_options.yaml` file. + +When you run `dart_shield init`, a default configuration is automatically added. + +## Enabling the Plugin + +To enable the security rules, `dart_shield` must be registered as a plugin: + +```yaml +plugins: + - dart_shield +``` + +## Shield Configuration + +The configuration for `dart_shield` lives under the `dart_shield` key. + +```yaml +dart_shield: + analyzers: + code: true + deps: true +``` + +### Options + +| Key | Type | Description | Default | +| :--- | :--- | :--- | :--- | +| `analyzers` | `Map` | Configuration for individual analyzers. | | +| `analyzers.code` | `boolean` | Enable or disable static code analysis (secret detection, etc.). | `true` | +| `analyzers.deps` | `boolean` | Enable or disable dependency analysis (known vulnerabilities). *Note: Currently a placeholder for future functionality.* | `true` | + +## Ignoring Rules + +Since `dart_shield` integrates with the Dart analyzer, you can often ignore specific rules using standard Dart ignore comments. + +### Ignore a specific line + +```dart +// ignore: avoid_hardcoded_secrets +const apiKey = "12345-secret"; +``` + +### Ignore for the whole file + +```dart +// ignore_for_file: avoid_hardcoded_secrets + +const apiKey = "12345-secret"; +const anotherSecret = "abcde-secret"; +``` diff --git a/docs/guides/getting-started/quick-start.mdx b/docs/guides/getting-started/quick-start.mdx new file mode 100644 index 0000000..814858f --- /dev/null +++ b/docs/guides/getting-started/quick-start.mdx @@ -0,0 +1,46 @@ +--- +title: Quickstart +description: Get started with dart_shield +--- + +# Quickstart + +## Installation + +`dart_shield` works as a Dart analyzer plugin. To use it, you need to add it to your project's `dev_dependencies`. + +```bash +dart pub add --dev dart_shield +``` + +If you want to use the CLI commands globally (optional but recommended for CI/CD or quick initialization), you can also activate it globally: + +```bash +dart pub global activate dart_shield +``` + +## Initialization + +In the root of your Dart/Flutter project, initialize `dart_shield`. This will configure your `analysis_options.yaml` to enable the plugin. + +```bash +dart_shield init +``` + +## Running Analysis + +Once initialized, `dart_shield` rules are automatically integrated into the standard Dart analysis server. This means issues will appear in your IDE (VS Code, IntelliJ) and when running `dart analyze`. + +### Using standard Dart analyzer +```bash +dart analyze +``` + +### Using Shield CLI +You can also use the `dart_shield` CLI to run analysis, which allows for custom reporters (like JSON output): + +```bash +dart_shield analyze +``` + +`dart_shield analyze` return only security related errors, while standard analysis returns all linter errors. \ No newline at end of file diff --git a/docs/index.mdx b/docs/index.mdx new file mode 100644 index 0000000..fce3bf1 --- /dev/null +++ b/docs/index.mdx @@ -0,0 +1,15 @@ +--- +title: Shield Documentation +subtitle: Static Application Security Testing for Dart +--- + + + +## What is dart_shield? + +`dart_shield` is a Dart-native Static Application Security Testing (SAST) tool that scans your codebase to identify potential security risks and breaches. + +It detects security flaws such as: +* Hardcoded endpoints and API keys. +* Vulnerable cryptography (weak hashing algorithms, insecure random generators). +* Insecure HTTP connections. diff --git a/docs/quickstart.md b/docs/quickstart.md deleted file mode 100644 index 45e8269..0000000 --- a/docs/quickstart.md +++ /dev/null @@ -1,92 +0,0 @@ -# Quickstart - -## Instalation - -Install dart\_shield using: - -```sh -dart pub global activate dart_shield -``` - -If you want to install specific version: - -```sh -dart pub global activate dart_shield -``` - -{% hint style="warning" %} -If this is your first CLI package, you might need to [setup PATH variable](https://dart.dev/tools/pub/cmd/pub-global#running-a-script-from-your-path). -{% endhint %} - -## Initialisation - -In root of your Dart/Flutter project, initialise dart\_shield using: - -```sh -dart_shield init -``` - -Initialisation command creates `shield_options.yaml` file in root of your project. - -{% code title="After initialisation" %} -``` -my_app/ -โ”œโ”€โ”€ bin/ -โ”œโ”€โ”€ lib/ -โ”œโ”€โ”€ test/ -โ”œโ”€โ”€ .gitignore -โ”œโ”€โ”€ analysis_options.yaml -โ”œโ”€โ”€ CHANGELOG.md -โ”œโ”€โ”€ pubspec.lock -โ”œโ”€โ”€ pubspec.yaml -โ”œโ”€โ”€ README.md -โ””โ”€โ”€ shield_options.yaml # New file -``` -{% endcode %} - -`shield_options.yaml` contains configuration used for analysis. - -{% code title="shield_options.yaml" %} -```yaml -# dart_shield configuration file -# This file is used to configure analyser behavior. -# For more information, see [link] -shield: - rules: - - prefer-https-over-http -``` -{% endcode %} - -{% hint style="info" %} -More about analysis options here. -{% endhint %} - -## Running Analysis - -In root of your Dart/Flutter project, run analysis using: - -```sh -dart_shield analyse -``` - -Analysis then returns result to output: - -{% code title="Analysis result" %} -``` -=== [Analysis Summary] === -๐Ÿ“„ Files Analyzed: 1 -โŒ Critical Issues: 0 -โš ๏ธ Warnings: 0 -โ„น๏ธ Infos: 0 - -=== [File Reports] === - ->>> Analyzed File: lib/no_vulnerabilites.dart - -๐ŸŽ‰ No issues found! -``` -{% endcode %} - -{% hint style="info" %} -More about analysis reports and reporters here. -{% endhint %} diff --git a/docs/rulebook/RULE_TEMPLATE.mdx b/docs/rulebook/RULE_TEMPLATE.mdx new file mode 100644 index 0000000..323579a --- /dev/null +++ b/docs/rulebook/RULE_TEMPLATE.mdx @@ -0,0 +1,54 @@ +--- +title: +description: +--- + +# + +**Rule ID**: `` +**Severity**: <๐Ÿ”ด High / ๐ŸŸก Medium / ๐Ÿ”ต Low / โšช Info> +**Category**: (OWASP ) + +## Description + +
    + +## Non-Compliant Code + + + +```dart +// Code example showing the violation +``` + +## Compliant Code + + + +```dart +// Code example showing the fix +``` + +## How to Fix + + + +## Why is this a problem? + + + +### + + +### + + +## When to Ignore + + + +**Always ensure that ignoring this rule does not introduce a security vulnerability in your specific use case.** + +## Resources + +* []() diff --git a/docs/rulebook/cryptography/avoid-weak-hashing.mdx b/docs/rulebook/cryptography/avoid-weak-hashing.mdx new file mode 100644 index 0000000..cd48ced --- /dev/null +++ b/docs/rulebook/cryptography/avoid-weak-hashing.mdx @@ -0,0 +1,85 @@ +--- +title: Avoid Weak Hashing +description: Detects the usage of weak or broken cryptographic hashing algorithms like MD5 or SHA-1. +--- + +# Avoid Weak Hashing + +**Rule ID**: `avoid_weak_hashing` +**Severity**: ๐Ÿ”ด High +**Category**: Cryptography (OWASP M10) + +## Description + +This rule identifies the use of cryptographic hashing algorithms that are considered weak or broken by modern security standards. Algorithms like **MD5** and **SHA-1** are known to be vulnerable to collision attacks and should not be used for security-critical purposes such as password hashing, digital signatures, or data integrity checks where collision resistance is paramount. + +## Non-Compliant Code + +Using `md5` or `sha1` from the `crypto` package: + +```dart +import 'package:crypto/crypto.dart'; +import 'dart:convert'; + +void main() { + var bytes = utf8.encode("foobar"); + // โŒ BAD: MD5 is broken and insecure for security-critical operations. + var digest = md5.convert(bytes); + print("Digest: $digest"); +} +``` + +## Compliant Code + +Use stronger, currently secure algorithms like **SHA-256** or **SHA-512**: + +```dart +import 'package:crypto/crypto.dart'; +import 'dart:convert'; + +void main() { + var bytes = utf8.encode("foobar"); + // โœ… GOOD: SHA-256 is currently considered secure for general-purpose hashing. + var digest = sha256.convert(bytes); + print("Digest: $digest"); +} +``` + +## How to Fix + +1. **For data integrity and general hashing**: Replace usages of MD5 or SHA-1 with SHA-256 or SHA-512. These are available in the same `package:crypto`. +2. **For password storage**: + * **NEVER** use simple SHA-256/512 for passwords. These are fast and vulnerable to brute-force attacks. + * Use a dedicated password hashing library like `package:argon2` or `package:bcrypt_dart`. These algorithms are designed to be computationally intensive, making brute-force attacks prohibitively expensive. +3. **For digital signatures**: Ensure you are using modern signature algorithms that rely on secure hash functions, such as ECDSA with SHA-256. + +## Why is this a problem? + +### 1. Collision Vulnerabilities +Weak hash functions make it computationally feasible for attackers to find two different inputs that produce the same hash output (a collision). This can be exploited to: +* Forge digital signatures. +* Bypass integrity checks (e.g., replace a legitimate file with a malicious one that has the same hash). +* Create malicious inputs that bypass security filters. + +### 2. Pre-image Attacks +While harder, for some weak hashes, it might be possible for an attacker to reconstruct the original input given only the hash output. + +### 3. Increased Brute-Force Feasibility +For security contexts like password hashing, weak (or simply fast) hash functions make it easier for attackers to perform brute-force or dictionary attacks to guess the original secret. + +## When to Ignore + +This rule can typically be ignored in scenarios where the hash function is used purely for **non-cryptographic purposes**, and collision resistance or cryptographic security is explicitly not required. + +Examples include: +* **Checksums for data integrity where the data source is fully trusted** and tampering is not a concern (e.g., verifying a local file hasn't changed due to disk errors, but not against malicious modification). +* **Generating unique IDs or keys for data structures** where the primary concern is uniqueness within a trusted context, not cryptographic randomness or collision resistance against an adversary. +* **Legacy system compatibility**: If you are strictly interoperating with a legacy system that *only* supports a weak hash, and you cannot upgrade it, this might be a rare case for ignoring (with careful risk assessment and understanding of the limited security provided). + +**Always ensure that ignoring this rule does not introduce a security vulnerability in your specific use case.** + +## Resources + +* [OWASP Mobile Top 10: M10 - Insufficient Cryptography](https://owasp.org/www-project-mobile-top-10/2024-Risks/m10-insufficient-cryptography.html) +* [CWE-327: Use of a Broken or Risky Cryptographic Algorithm](https://cwe.mitre.org/data/definitions/327.html) +* [Dart `crypto` package documentation](https://pub.dev/packages/crypto) \ No newline at end of file diff --git a/docs/rulebook/cryptography/prefer-secure-random.mdx b/docs/rulebook/cryptography/prefer-secure-random.mdx new file mode 100644 index 0000000..548b04e --- /dev/null +++ b/docs/rulebook/cryptography/prefer-secure-random.mdx @@ -0,0 +1,79 @@ +--- +title: Prefer Secure Random +description: Detects the use of insecure random number generators for security-sensitive operations. +--- + +# Prefer Secure Random + +**Rule ID**: `prefer_secure_random` +**Severity**: ๐ŸŸก Medium +**Category**: Cryptography (OWASP M10) + +## Description + +This rule detects the use of standard, non-cryptographically secure random number generators (like `dart:math`'s `Random`) in contexts that appear to be security-sensitive. Standard PRNGs (Pseudo-Random Number Generators) are predictable and should not be used for generating secrets, tokens, passwords, or cryptographic keys. + +## Non-Compliant Code + +Using `Random` for generating a token or password: + +```dart +import 'dart:math'; + +void main() { + final random = Random(); + // โŒ BAD: Standard Random is predictable + final token = List.generate(32, (_) => random.nextInt(256)).join(); + print('Token: $token'); +} +``` + +## Compliant Code + +Use `Random.secure()` from `dart:math`: + +```dart +import 'dart:math'; + +void main() { + // โœ… GOOD: Uses a cryptographically secure source + final random = Random.secure(); + final token = List.generate(32, (_) => random.nextInt(256)).join(); + print('Token: $token'); +} +``` + +## How to Fix + +Replace instances of `Random()` with `Random.secure()` when the random value is used for: +* Session IDs +* CSRF tokens +* Reset passwords +* Cryptographic keys or initialization vectors (IVs) +* Any other security-critical value + +## Why is this a problem? + +### 1. Predictability +Standard PRNGs (like the Mersenne Twister or Linear Congruential Generator used in many languages) are designed for speed and statistical distribution, not unpredictability. If an attacker can observe a sequence of outputs, they can often determine the internal state of the generator and predict all future (and sometimes past) values. + +### 2. Compromised Secrets +If a predictable generator is used to create a "secret" token (like a password reset link), an attacker could predict the token assigned to another user and take over their account. + +## When to Ignore + +You can safely ignore this rule if the random values are **not** used for security purposes. + +Examples include: +* UI animations or visual effects. +* Game mechanics (e.g., shuffling a deck of cards in a casual game, spawning enemies). +* Randomized testing (fuzzing) where cryptographic security is irrelevant. +* Load balancing (e.g., random backoff). + +**Always ensure that ignoring this rule does not introduce a security vulnerability in your specific use case.** + +## Resources + +* [OWASP Mobile Top 10: M10 - Insufficient Cryptography](https://owasp.org/www-project-mobile-top-10/2024-Risks/m10-insufficient-cryptography.html) +* [CWE-338: Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG)](https://cwe.mitre.org/data/definitions/338.html) +* [Dart `Random.secure` documentation](https://api.dart.dev/stable/dart-math/Random/Random.secure.html) \ No newline at end of file diff --git a/docs/rulebook/index.mdx b/docs/rulebook/index.mdx new file mode 100644 index 0000000..92be426 --- /dev/null +++ b/docs/rulebook/index.mdx @@ -0,0 +1,45 @@ +--- +title: Rulebook Overview +description: Overview of the security rules enforced by dart_shield. +--- + +# Rulebook + +The Rulebook is the comprehensive reference for all security checks performed by `dart_shield`. It categorizes rules based on the OWASP Mobile Top 10 (2024) to provide a clear and industry-standard understanding of potential vulnerabilities. + +## Rule Categories + +### 1. Cryptography (OWASP M10 - Insufficient Cryptography) + +Rules in this category focus on identifying weak or improper cryptographic practices that could compromise the confidentiality, integrity, or authenticity of data. + +* [Avoid Weak Hashing](/rulebook/cryptography/avoid-weak-hashing) +* [Prefer Secure Random](/rulebook/cryptography/prefer-secure-random) + +### 2. Network (OWASP M5 - Insecure Communication) + +This category addresses vulnerabilities related to insecure data transmission, ensuring that communication channels are protected against interception and tampering. + +* [Prefer HTTPS over HTTP](/rulebook/network/prefer-https-over-http) +* [Avoid Hardcoded URLs](/rulebook/network/avoid-hardcoded-urls) + +### 3. Secrets (OWASP M1 - Improper Credential Usage) + +These rules aim to detect the exposure of sensitive credentials, such as API keys, tokens, and passwords, within the codebase. + +* [Avoid Hardcoded Secrets](/rulebook/secrets/avoid-hardcoded-secrets) +* [All Secret Detection Patterns](/rulebook/secrets) (A comprehensive list of all patterns recognized by `avoid_hardcoded_secrets`) + +## How Rules Work + +`dart_shield` uses a combination of techniques to detect security issues: + +1. **Pattern Matching (Regex):** Identifying strings that match known key formats (e.g., `sk_live_...`). +2. **Context Analysis:** Checking variable names (e.g., `const apiKey = "..."`) to increase confidence. +3. **Entropy Checks:** Analyzing the randomness of a string to distinguish between high-entropy secrets and regular text. + +## False Positives + +Security scanners can sometimes report false positives. If a safe string is flagged as a secret, you can ignore it using standard Dart ignore mechanisms. + +See [Ignoring Rules](/guides/configuration/ignoring) for details on how to suppress warnings. diff --git a/docs/rulebook/network/avoid-hardcoded-urls.mdx b/docs/rulebook/network/avoid-hardcoded-urls.mdx new file mode 100644 index 0000000..be848d5 --- /dev/null +++ b/docs/rulebook/network/avoid-hardcoded-urls.mdx @@ -0,0 +1,75 @@ +--- +title: Avoid Hardcoded URLs +description: Detects hardcoded URLs in the codebase. +--- + +# Avoid Hardcoded URLs + +**Rule ID**: `avoid_hardcoded_urls` +**Severity**: ๐Ÿ”ต Low +**Category**: Network (OWASP M5) + +## Description + +This rule detects raw URL strings (starting with `http://` or `https://`) hardcoded directly into the source code. Hardcoding URLs makes the application difficult to maintain, harder to configure for different environments (dev, stage, prod), and can lead to security issues if sensitive endpoints are exposed. + +## Non-Compliant Code + +Hardcoding the API endpoint: + +```dart +class ApiService { + // โŒ BAD: Hardcoded URL + final String baseUrl = 'https://api.production.com/v1'; + + void fetchData() { ... } +} +``` + +## Compliant Code + +Use configuration or environment variables: + +```dart +class ApiService { + // โœ… GOOD: URL is injected or loaded from config + final String baseUrl; + + ApiService({required this.baseUrl}); +} + +// In main.dart or a config file: +final config = AppConfig.fromEnvironment(); +final api = ApiService(baseUrl: config.apiUrl); +``` + +## How to Fix + +1. **Extract to Configuration**: Move the URL to a configuration file (e.g., `.env`, `config.json`) or a dedicated configuration class. +2. **Use Environment Variables**: Use `String.fromEnvironment` or packages like `flutter_dotenv` to load URLs at runtime or build time. +3. **Dependency Injection**: Pass the base URL to your services via their constructor, allowing for easier testing and environment switching. + +## Why is this a problem? + +### 1. Maintainability +If the API endpoint changes, you have to search and replace it across the entire codebase, increasing the risk of errors. + +### 2. Environment Management +It becomes difficult to point the app to different environments (Development, Staging, Production) without modifying the code and rebuilding. + +### 3. Security +Hardcoded URLs might accidentally expose internal testing endpoints or staging servers to the public if not managed validity. + +## When to Ignore + +This rule can be ignored for: + +* **Static Resources**: Links to privacy policies, terms of service, or documentation that are unlikely to change. +* **Third-Party Constants**: Public URLs for stable third-party services that are not environment-dependent (e.g., `https://www.google.com`). + +**Always ensure that ignoring this rule does not introduce a security vulnerability in your specific use case.** + +## Resources + +* [The Twelve-Factor App: Config](https://12factor.net/config) +* [Flutter: flavoring](https://docs.flutter.dev/deployment/flavors) \ No newline at end of file diff --git a/docs/rulebook/network/prefer-https-over-http.mdx b/docs/rulebook/network/prefer-https-over-http.mdx new file mode 100644 index 0000000..c58b4d3 --- /dev/null +++ b/docs/rulebook/network/prefer-https-over-http.mdx @@ -0,0 +1,67 @@ +--- +title: Prefer HTTPS over HTTP +description: Detects the use of insecure HTTP connections. +--- + +# Prefer HTTPS over HTTP + +**Rule ID**: `prefer_https_over_http` +**Severity**: ๐Ÿ”ด High +**Category**: Network (OWASP M5) + +## Description + +This rule identifies hardcoded URLs or string literals that start with `http://`. Using unencrypted HTTP connections exposes data to interception and modification by attackers on the network. + +## Non-Compliant Code + +Using an `http://` URL: + +```dart +void main() { + // โŒ BAD: Unencrypted connection + final url = 'http://api.example.com/data'; + print('Fetching from $url'); +} +``` + +## Compliant Code + +Use `https://`: + +```dart +void main() { + // โœ… GOOD: Encrypted connection + final url = 'https://api.example.com/data'; + print('Fetching from $url'); +} +``` + +## How to Fix + +1. **Change the protocol**: Simply update the URL string from `http://` to `https://`. +2. **Verify server support**: Ensure the backend server supports TLS/SSL. Most modern services do. + +## Why is this a problem? + +### 1. Data Interception (Man-in-the-Middle) +Data sent over HTTP is transmitted in cleartext. Any attacker positioned between the client and the server (e.g., on a public Wi-Fi network) can read sensitive information like authentication tokens, passwords, and personal data. + +### 2. Data Integrity +Without the integrity checks provided by TLS, an attacker can modify the data in transit. They could inject malicious scripts into a downloaded web page or alter the response from an API to change application behavior. + +## When to Ignore + +This rule can be ignored in specific, controlled environments: + +* **Localhost Development**: When connecting to a local server (e.g., `http://localhost:8080`) for testing purposes. +* **Intranet/VPN**: In highly specific enterprise environments where traffic is fully contained within a trusted network (though HTTPS is still recommended). +* **Public Data**: Downloading non-sensitive public data where integrity is not a concern (rare). + +**Always ensure that ignoring this rule does not introduce a security vulnerability in your specific use case.** + +## Resources + +* [OWASP Mobile Top 10: M5 - Insecure Communication](https://owasp.org/www-project-mobile-top-10/2024-Risks/m5-insecure-communication.html) +* [CWE-319: Cleartext Transmission of Sensitive Information](https://cwe.mitre.org/data/definitions/319.html) +* [Google: Why HTTPS Matters](https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https) \ No newline at end of file diff --git a/docs/rulebook/secrets/avoid-hardcoded-secrets.mdx b/docs/rulebook/secrets/avoid-hardcoded-secrets.mdx new file mode 100644 index 0000000..4540b2b --- /dev/null +++ b/docs/rulebook/secrets/avoid-hardcoded-secrets.mdx @@ -0,0 +1,75 @@ +--- +title: Avoid Hardcoded Secrets +description: Detects hardcoded secrets, API keys, and tokens in the source code. +--- + +# Avoid Hardcoded Secrets + +**Rule ID**: `avoid_hardcoded_secrets` +**Severity**: ๐Ÿ”ด High +**Category**: Secrets (OWASP M1) + +## Description + +This rule scans string literals for patterns that resemble API keys, authentication tokens, passwords, and other sensitive credentials. Hardcoding secrets in source code is a major security vulnerability, as it exposes these credentials to anyone with access to the code (including public repositories) and makes it impossible to rotate secrets without redeploying the application. + +## Non-Compliant Code + +Hardcoding an API key: + +```dart +class PaymentService { + // โŒ BAD: Secret is hardcoded + final String stripeKey = 'sk_live_51Mz...'; +} +``` + +## Compliant Code + +Load the secret from a secure source at runtime: + +```dart +class PaymentService { + // โœ… GOOD: Secret is injected + final String stripeKey; + + PaymentService({required this.stripeKey}); +} + +// Load from secure storage or build environment +final key = await SecureStorage.get('STRIPE_KEY'); +``` + +## How to Fix + +1. **Remove the Secret**: Delete the hardcoded string immediately. +2. **Rotate the Credential**: If the secret was committed to version control, consider it compromised. **Revoke it and generate a new one.** +3. **Use Environment Variables**: For server-side Dart, use environment variables. +4. **Use Secure Storage**: For mobile apps, store sensitive user tokens in secure storage (e.g., `flutter_secure_storage`). +5. **Backend Proxy**: For third-party API keys that cannot be exposed to the client, move the logic to a backend server. The mobile app should call your backend, which then attaches the key and calls the third-party service. + +## Why is this a problem? + +### 1. Credential Exposure +Source code is often widely shared within a team or even publicly. Hardcoded secrets give anyone with read access to the repository full access to the associated services. + +### 2. Reverse Engineering +Even in compiled mobile apps, strings are often stored in cleartext in the binary. Attackers can decompile the app and extract the keys. + +### 3. Operational Difficulty +Rotating a compromised hardcoded key requires a full app update and release cycle. + +## When to Ignore + +This rule uses pattern matching and entropy analysis, which can sometimes produce false positives. You can ignore this rule if: + +* **The string is not a secret**: It might be a public ID, a hash, or a long random string used for non-security purposes. +* **The key is public by design**: Some "keys" (like Firebase `API_KEY` or Stripe *publishable* keys) are meant to be public. However, verify the documentation for that specific service before ignoring. + +**Always ensure that ignoring this rule does not introduce a security vulnerability in your specific use case.** + +## Resources + +* [OWASP Mobile Top 10: M1 - Improper Credential Usage](https://owasp.org/www-project-mobile-top-10/2024-Risks/m1-improper-credential-usage.html) +* [CWE-798: Use of Hard-coded Credentials](https://cwe.mitre.org/data/definitions/798.html) +* [Flutter: Storing sensitive data](https://docs.flutter.dev/data-and-backend/security#storing-sensitive-data) \ No newline at end of file diff --git a/example/analysis_options.yaml b/example/analysis_options.yaml index 572dd23..fd796ac 100644 --- a/example/analysis_options.yaml +++ b/example/analysis_options.yaml @@ -1 +1,9 @@ include: package:lints/recommended.yaml + +analyzer: + plugins: + - dart_shield + +dart_shield: + analyzers: + code: true \ No newline at end of file diff --git a/example/lib/vulnerabilities.dart b/example/lib/vulnerabilities.dart index 08efd20..ba2b9eb 100644 --- a/example/lib/vulnerabilities.dart +++ b/example/lib/vulnerabilities.dart @@ -39,32 +39,9 @@ void weakHashes() { } // dart_shield rule: prefer-secure-random + void unsecureRandom() { // Violation: Using `Random` instead of `Random.secure()` - final random = Random.secure(); -} - -// dart_shield rule: avoid-hardcoded-secrets -void hardcodedSecrets() { - // Violation: Hardcoded Gitlab Personal Access Token - final gitlabPersonalToken = 'glpat-xxxxxxxxxxxxxxxxxxxx'; - - // Violation: Hardcoded GitHub Personal Access Token - final githubPersonalToken = 'ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; - // Violation: Hardcoded GitHub OAuth Token - final githubOAuthToken = 'gho_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; - - // Violation: Hardcoded GitHub App Token - final githubAppTokenFirst = 'gho_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; - final githubAppTokenSecond = 'ghs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; - - // Violation: Hardcoded AWS Access Token - final awsAccessToken = 'AKIAxxxxxxxxxxxxxxxx'; - - // Violation: Hardcoded Stripe Live API Key - final stripeLiveApiKey = 'sk_live_xxxxxxxxxxxxxxxxxxxxxxxx'; - - // Violation: Hardcoded Google API Key - final googleApiKey = 'AIzaxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; + final random = Random.secure(); } diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 6bcf127..4d45a95 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0 publish_to: none environment: - sdk: ^3.4.1 + sdk: ^3.10.0 dependencies: # Add the dart_shield package to your dependencies. diff --git a/example/shield_options.yaml b/example/shield_options.yaml deleted file mode 100644 index 43f5d09..0000000 --- a/example/shield_options.yaml +++ /dev/null @@ -1,38 +0,0 @@ -# This is a sample configuration file for dart_shield. -# โš ๏ธ Configuration file must be named `shield_options.yaml` and placed in the root of the project. - -# shield_options.yaml is file with structure similar to analysis_options.yaml and it defines the -# rules that dart_shield will use to analyze your code. - -# The `shield` key is required. -shield: - - # List of excluded files or directories from being analyzed - exclude: - # Exclude a file using path (path begins at the root of the project): - - 'lib/ignored.dart' - # Globs are also supported - - '**.g.dart' - - # List of rules that dart_shield will use to analyze your code - # You can use both simple string format and object format with exclusions - rules: - - prefer_https_over_http - - avoid_hardcoded_secrets: - exclude: - - lib/config.dart - - test/** - - # Some rules need more fine-tuning and are marked as experimental. - # You can enable them by setting `enable_experimental` to `true`. - enable_experimental: true - - # List of experimental rules that dart_shield will use to analyze your code - # โš ๏ธ Experimental rules are subject to change and may not be as stable as regular rules. - # โš ๏ธ Using "experimental_rules" without setting "enable_experimental" to "true" will cause an error. - experimental_rules: - - avoid_hardcoded_urls - - avoid_weak_hashing: - exclude: - - lib/legacy/** - - prefer_secure_random \ No newline at end of file diff --git a/lib/assets/assets.dart b/lib/assets/assets.dart deleted file mode 100644 index 7c1459d..0000000 --- a/lib/assets/assets.dart +++ /dev/null @@ -1 +0,0 @@ -export 'shield_secrets_dart.dart'; diff --git a/lib/assets/shield_secrets_dart.dart b/lib/assets/shield_secrets_dart.dart deleted file mode 100644 index 10d1e4e..0000000 --- a/lib/assets/shield_secrets_dart.dart +++ /dev/null @@ -1,31 +0,0 @@ -// Copy of [shield_secrets.yaml] because Dart doesn't support native assets yet. -// This is a workaround until Dart SDK adds native asset support. -// See: https://github.com/dart-lang/sdk/issues/53562 -// TODO(yardex): Use native assets when Dart SDK supports it - -const String shieldSecretsSource = r''' -shield_patterns: - version: 0.1.0-dev.1 - secrets: - - name: 'Gitlab Personal Access Token' - pattern: 'glpat-[0-9a-zA-Z_\-]{20}' - - name: 'GitHub Personal Access Token' - pattern: 'ghp_[0-9a-zA-Z]{36}' - - name: 'GitHub OAuth Token' - pattern: 'gho_[0-9a-zA-Z]{36}' - - name: 'GitHub App Token' - pattern: '(ghu|ghs)_[0-9a-zA-Z]{36}' - - name: 'AWS Access Token' - pattern: 'AKIA[0-9A-Z]{16}' - - name: 'Stripe Live API Key' - pattern: 'sk_live_[0-9a-zA-Z]{24}' - - name: 'Google API Key' - pattern: 'AIza[0-9A-Za-z\\-_]{35}' - - name: 'Google Cloud Platform Service Account Key' - pattern: '\"type\": \"service_account\"' - - name: 'URL with password' - pattern: '[a-zA-Z]{3,10}:\/\/[^$][^:@\/\n]{3,20}:[^$][^:@\n\/]{3,40}@.{1,100}' - keys: - - name: 'RSA Private Key' - pattern: '-----BEGIN' -'''; diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..0a61fa9 --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,3 @@ +import 'package:dart_shield/src/analyzers/code/plugin/shield_plugin.dart'; + +final plugin = ShieldPlugin(); diff --git a/lib/src/analyzers/analyzer.dart b/lib/src/analyzers/analyzer.dart new file mode 100644 index 0000000..d661721 --- /dev/null +++ b/lib/src/analyzers/analyzer.dart @@ -0,0 +1,7 @@ +import 'package:dart_shield/src/domain/analyzer_result.dart'; + +abstract interface class Analyzer { + String get id; + + Future analyze(); +} diff --git a/lib/src/analyzers/code/code_analyzer.dart b/lib/src/analyzers/code/code_analyzer.dart new file mode 100644 index 0000000..f6e8638 --- /dev/null +++ b/lib/src/analyzers/code/code_analyzer.dart @@ -0,0 +1,96 @@ +import 'dart:convert'; +import 'dart:io'; + +import 'package:collection/collection.dart'; +import 'package:dart_shield/src/analyzers/analyzer.dart'; +import 'package:dart_shield/src/analyzers/code/rules/rules.dart'; +import 'package:dart_shield/src/analyzers/utils/analyzer_result.dart'; +import 'package:dart_shield/src/analyzers/utils/dto_mapper.dart'; +import 'package:dart_shield/src/domain/analysis_issue.dart'; +import 'package:dart_shield/src/domain/analyzer_result.dart'; +import 'package:dart_shield/src/domain/exceptions.dart'; +import 'package:path/path.dart' as path; + +class CodeAnalyzer implements Analyzer { + CodeAnalyzer({required this.analyzedPaths, String? rootFolder}) + : rootFolder = rootFolder ?? Directory.current.path; + + final List analyzedPaths; + final String rootFolder; + + @override + String get id => 'code'; + + @override + Future analyze() async { + final stopwatch = Stopwatch()..start(); + + try { + final issues = []; + final knownRuleIds = rules.map((r) => r.name).toSet(); + + for (final targetPath in analyzedPaths) { + final target = path.join(rootFolder, targetPath); + + ProcessResult result; + try { + result = await Process.run('dart', [ + 'analyze', + '--format=json', + target, + ], runInShell: true); + } on ProcessException catch (e) { + throw ShieldProcessException( + 'Failed to execute dart analyze.', + 'Ensure the Dart SDK is installed and accessible in your PATH.\n' + 'Original error: ${e.message}', + ); + } + + final output = result.stdout as String; + + // `dart analyze` may output impure json (should be fixed by now) + // https://github.com/invertase/dart_custom_lint/issues/224 + final jsonString = output + .split('\n') + .firstWhereOrNull((e) => e.trim().startsWith('{')); + + if (jsonString == null) { + throw ShieldProcessException( + 'dart analyze did not return valid JSON output.', + 'This usually means the analysis command crashed or ' + 'encountered a fatal error.\nOutput: $output', + ); + } + + final analyzeResult = AnalyzeResult.fromJson( + jsonDecode(jsonString) as Map, + ); + + for (final diagnostic in analyzeResult.diagnostics) { + if (knownRuleIds.contains(diagnostic.code)) { + final issue = diagnostic.toAnalysisIssue(); + if (issue != null) { + issues.add(issue); + } + } + } + } + + stopwatch.stop(); + + return AnalysisSuccess( + analyzerId: id, + duration: stopwatch.elapsed, + issues: issues, + ); + } on Object catch (e, stack) { + return AnalysisFailure( + analyzerId: id, + duration: stopwatch.elapsed, + errorMessage: 'Failed to run code analysis: $e', + stackTrace: stack, + ); + } + } +} diff --git a/lib/src/analyzers/code/plugin/shield_plugin.dart b/lib/src/analyzers/code/plugin/shield_plugin.dart new file mode 100644 index 0000000..80a0fa1 --- /dev/null +++ b/lib/src/analyzers/code/plugin/shield_plugin.dart @@ -0,0 +1,15 @@ +import 'dart:async'; + +import 'package:analysis_server_plugin/plugin.dart'; +import 'package:analysis_server_plugin/registry.dart'; +import 'package:dart_shield/src/analyzers/code/rules/rules.dart'; + +class ShieldPlugin extends Plugin { + @override + String get name => 'dart_shield'; + + @override + FutureOr register(PluginRegistry registry) { + rules.forEach(registry.registerWarningRule); + } +} diff --git a/lib/src/analyzers/code/rules/cryptography/avoid_weak_hashing.dart b/lib/src/analyzers/code/rules/cryptography/avoid_weak_hashing.dart new file mode 100644 index 0000000..c90a76e --- /dev/null +++ b/lib/src/analyzers/code/rules/cryptography/avoid_weak_hashing.dart @@ -0,0 +1,83 @@ +import 'package:analyzer/analysis_rule/analysis_rule.dart'; +import 'package:analyzer/analysis_rule/rule_context.dart'; +import 'package:analyzer/analysis_rule/rule_visitor_registry.dart'; +import 'package:analyzer/dart/ast/ast.dart'; +import 'package:analyzer/dart/ast/visitor.dart'; +import 'package:analyzer/error/error.dart'; + +class AvoidWeakHashing extends AnalysisRule { + AvoidWeakHashing() + : super(name: 'avoid_weak_hashing', description: 'Some description'); + static const LintCode code = LintCode( + 'avoid_weak_hashing', + 'Using weak hashing algorithms can lead to security vulnerabilities.', + correctionMessage: + 'Consider using stronger hashing algorithms like SHA-256 or SHA-3.', + ); + + @override + DiagnosticCode get diagnosticCode => code; + + @override + void registerNodeProcessors( + RuleVisitorRegistry registry, + RuleContext context, + ) { + final visitor = _WeakCryptoHashingVisitor(this, context); + registry + ..addMethodInvocation(this, visitor) + ..addAssignmentExpression(this, visitor); + } +} + +class _WeakCryptoHashingVisitor extends SimpleAstVisitor { + _WeakCryptoHashingVisitor(this.rule, this.context); + + final AnalysisRule rule; + final RuleContext context; + final _unsafeHashes = ['md5', 'sha1']; + + @override + void visitMethodInvocation(MethodInvocation node) { + if (_isTargetWeakHash(node)) { + rule.reportAtNode(node); + } + + super.visitMethodInvocation(node); + } + + bool _isTargetWeakHash(MethodInvocation node) { + final target = node.target; + if (target == null) { + return false; + } + + if (target is! SimpleIdentifier) { + return false; + } + + return _isIdentifierWeakHash(target); + } + + @override + void visitAssignmentExpression(AssignmentExpression node) { + if (_isAssignmentWeakHash(node)) { + rule.reportAtNode(node); + } + } + + bool _isAssignmentWeakHash(AssignmentExpression node) { + final rhs = node.rightHandSide; + + if (rhs is SimpleIdentifier) { + return _isIdentifierWeakHash(rhs); + } + + return false; + } + + bool _isIdentifierWeakHash(SimpleIdentifier identifier) { + return _unsafeHashes.any((weakHash) => weakHash == identifier.name) && + identifier.staticType?.getDisplayString() == 'Hash'; + } +} diff --git a/lib/src/analyzers/code/rules/cryptography/prefer_secure_random.dart b/lib/src/analyzers/code/rules/cryptography/prefer_secure_random.dart new file mode 100644 index 0000000..4de9877 --- /dev/null +++ b/lib/src/analyzers/code/rules/cryptography/prefer_secure_random.dart @@ -0,0 +1,63 @@ +import 'package:analyzer/analysis_rule/analysis_rule.dart'; +import 'package:analyzer/analysis_rule/rule_context.dart'; +import 'package:analyzer/analysis_rule/rule_visitor_registry.dart'; +import 'package:analyzer/dart/ast/ast.dart'; +import 'package:analyzer/dart/ast/visitor.dart'; +import 'package:analyzer/error/error.dart'; + +class PreferSecureRandom extends AnalysisRule { + PreferSecureRandom() + : super( + name: 'prefer_secure_random', + description: + 'Prefer using SecureRandom for cryptographic purposes instead of ' + 'the default Random class.', + ); + + static const LintCode code = LintCode( + 'prefer_secure_random', + 'Using Random for cryptographic purposes is insecure. Consider using ' + 'SecureRandom instead.', + correctionMessage: 'Replace Random with SecureRandom for better security.', + ); + + @override + DiagnosticCode get diagnosticCode => code; + + @override + void registerNodeProcessors( + RuleVisitorRegistry registry, + RuleContext context, + ) { + final visitor = _PreferSecureRandomVisitor(rule: this, context: context); + registry.addInstanceCreationExpression(this, visitor); + } +} + +class _PreferSecureRandomVisitor extends SimpleAstVisitor { + _PreferSecureRandomVisitor({required this.rule, required this.context}); + + final AnalysisRule rule; + final RuleContext context; + + @override + void visitInstanceCreationExpression(InstanceCreationExpression node) { + final token = node.beginToken; + if (token.lexeme != 'Random') { + return; + } + + if (_isRandomUnsecure(node)) { + rule.reportAtNode(node); + } + + super.visitInstanceCreationExpression(node); + } + + bool _isRandomUnsecure(InstanceCreationExpression node) { + final baseConstructor = node.beginToken.lexeme; + final constructorName = node.constructorName.name?.name; + + return baseConstructor == 'Random' && constructorName != 'secure'; + } +} diff --git a/lib/src/analyzers/code/rules/network/avoid_harcoded_urls.dart b/lib/src/analyzers/code/rules/network/avoid_harcoded_urls.dart new file mode 100644 index 0000000..0d3b369 --- /dev/null +++ b/lib/src/analyzers/code/rules/network/avoid_harcoded_urls.dart @@ -0,0 +1,52 @@ +import 'package:analyzer/analysis_rule/analysis_rule.dart'; +import 'package:analyzer/analysis_rule/rule_context.dart'; +import 'package:analyzer/analysis_rule/rule_visitor_registry.dart'; +import 'package:analyzer/dart/ast/ast.dart'; +import 'package:analyzer/dart/ast/visitor.dart'; +import 'package:analyzer/error/error.dart'; + +class AvoidHardcodedUrls extends AnalysisRule { + AvoidHardcodedUrls() + : super( + name: 'avoid_hardcoded_urls', + description: + 'Avoid using hardcoded URLs in the codebase for better ' + 'maintainability and ' + 'security.', + ); + + static const LintCode code = LintCode( + 'avoid_hardcoded_urls', + 'Using hardcoded URLs can lead to security and maintainability issues.', + correctionMessage: + 'Consider using configuration files or environment variables to manage ' + 'URLs.', + ); + + @override + DiagnosticCode get diagnosticCode => code; + + @override + void registerNodeProcessors( + RuleVisitorRegistry registry, + RuleContext context, + ) { + final visitor = _AvoidHardcodedUrls(rule: this, context: context); + registry.addSimpleStringLiteral(this, visitor); + } +} + +class _AvoidHardcodedUrls extends SimpleAstVisitor { + _AvoidHardcodedUrls({required this.rule, required this.context}); + + final AnalysisRule rule; + final RuleContext context; + + @override + void visitSimpleStringLiteral(SimpleStringLiteral node) { + if (node.value.startsWith('http:') || node.value.startsWith('https:')) { + rule.reportAtNode(node); + } + super.visitSimpleStringLiteral(node); + } +} diff --git a/lib/src/analyzers/code/rules/network/prefer_https_over_http.dart b/lib/src/analyzers/code/rules/network/prefer_https_over_http.dart new file mode 100644 index 0000000..15ee18d --- /dev/null +++ b/lib/src/analyzers/code/rules/network/prefer_https_over_http.dart @@ -0,0 +1,77 @@ +import 'package:analyzer/analysis_rule/analysis_rule.dart'; +import 'package:analyzer/analysis_rule/rule_context.dart'; +import 'package:analyzer/analysis_rule/rule_visitor_registry.dart'; +import 'package:analyzer/dart/ast/ast.dart'; +import 'package:analyzer/dart/ast/visitor.dart'; +import 'package:analyzer/error/error.dart'; + +class PreferHttpsOverHttp extends AnalysisRule { + PreferHttpsOverHttp() + : super( + name: 'prefer_https_over_http', + description: 'Prefer HTTPS over HTTP for URLs in the code.', + ); + + static const LintCode code = LintCode( + 'prefer_https_over_http', + 'Prefer HTTPS over HTTP for URLs in the code.', + correctionMessage: + 'Consider using HTTPS instead of HTTP for better ' + 'security.', + ); + + @override + DiagnosticCode get diagnosticCode => code; + + @override + void registerNodeProcessors( + RuleVisitorRegistry registry, + RuleContext context, + ) { + final visitor = _PreferHttpsOverHttpVisitor(rule: this, context: context); + registry + ..addSimpleStringLiteral(this, visitor) + ..addInstanceCreationExpression(this, visitor); + } +} + +class _PreferHttpsOverHttpVisitor extends SimpleAstVisitor { + _PreferHttpsOverHttpVisitor({required this.rule, required this.context}); + final AnalysisRule rule; + final RuleContext context; + + @override + void visitSimpleStringLiteral(SimpleStringLiteral node) { + // Check if the string literal starts with "http:" (not "https:") + final value = node.value; + if (value.startsWith('http:') && !value.startsWith('https:')) { + rule.reportAtNode(node); + } + super.visitSimpleStringLiteral(node); + } + + @override + void visitInstanceCreationExpression(InstanceCreationExpression node) { + // Check for Uri.http() constructor calls + if (node.beginToken.lexeme != 'Uri') { + return; + } + + if (_isUnsafeUriInstance(node)) { + rule.reportAtNode(node); + } + + super.visitInstanceCreationExpression(node); + } + + bool _isUnsafeUriInstance(InstanceCreationExpression node) { + final token = node.beginToken; + final baseConstructor = token.lexeme; + final constructorName = node.constructorName.name?.name; + final constructorToken = token.next?.next?.lexeme; + + // Check if it's Uri.http() (not Uri.https()) + return baseConstructor == 'Uri' && + (constructorName == 'http' || constructorToken == 'http'); + } +} diff --git a/lib/src/analyzers/code/rules/rule_metadata.dart b/lib/src/analyzers/code/rules/rule_metadata.dart new file mode 100644 index 0000000..1abd02e --- /dev/null +++ b/lib/src/analyzers/code/rules/rule_metadata.dart @@ -0,0 +1,77 @@ +import 'package:dart_shield/src/domain/analysis_issue.dart'; + +/// Metadata for security rules including severity and documentation links. +class RuleMetadata { + const RuleMetadata({ + required this.ruleId, + required this.severity, + this.owaspCategory, + this.cweId, + this.documentationUrl, + }); + + final String ruleId; + final Severity severity; + final String? owaspCategory; + final String? cweId; + final String? documentationUrl; +} + +/// Registry of all rule metadata. +/// +/// Each rule is categorized by severity level and mapped to relevant +/// security standards (OWASP, CWE). +const Map ruleMetadataRegistry = { + 'avoid_hardcoded_secrets': RuleMetadata( + ruleId: 'avoid_hardcoded_secrets', + severity: Severity.high, + owaspCategory: 'A02:2021 Cryptographic Failures', + cweId: 'CWE-798', + documentationUrl: + 'https://dart-shield.dev/rulebook/secrets/avoid-hardcoded-secrets', + ), + 'prefer_https_over_http': RuleMetadata( + ruleId: 'prefer_https_over_http', + severity: Severity.high, + owaspCategory: 'A02:2021 Cryptographic Failures', + cweId: 'CWE-319', + documentationUrl: + 'https://dart-shield.dev/rulebook/network/prefer-https-over-http', + ), + 'avoid_weak_hashing': RuleMetadata( + ruleId: 'avoid_weak_hashing', + severity: Severity.medium, + owaspCategory: 'A02:2021 Cryptographic Failures', + cweId: 'CWE-328', + documentationUrl: + 'https://dart-shield.dev/rulebook/cryptography/avoid-weak-hashing', + ), + 'prefer_secure_random': RuleMetadata( + ruleId: 'prefer_secure_random', + severity: Severity.medium, + owaspCategory: 'A02:2021 Cryptographic Failures', + cweId: 'CWE-330', + documentationUrl: + 'https://dart-shield.dev/rulebook/cryptography/prefer-secure-random', + ), + 'avoid_hardcoded_urls': RuleMetadata( + ruleId: 'avoid_hardcoded_urls', + severity: Severity.low, + owaspCategory: 'A05:2021 Security Misconfiguration', + cweId: 'CWE-547', + documentationUrl: + 'https://dart-shield.dev/rulebook/network/avoid-hardcoded-urls', + ), +}; + +/// Gets the metadata for a rule by its ID. +/// +/// Returns null if the rule ID is not found in the registry. +RuleMetadata? getRuleMetadata(String ruleId) => ruleMetadataRegistry[ruleId]; + +/// Gets the severity for a rule by its ID. +/// +/// Returns [Severity.info] if the rule ID is not found in the registry. +Severity getSeverityForRule(String ruleId) { + return ruleMetadataRegistry[ruleId]?.severity ?? Severity.info; +} diff --git a/lib/src/analyzers/code/rules/rules.dart b/lib/src/analyzers/code/rules/rules.dart new file mode 100644 index 0000000..5a51d43 --- /dev/null +++ b/lib/src/analyzers/code/rules/rules.dart @@ -0,0 +1,14 @@ +import 'package:analyzer/analysis_rule/analysis_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/cryptography/avoid_weak_hashing.dart'; +import 'package:dart_shield/src/analyzers/code/rules/cryptography/prefer_secure_random.dart'; +import 'package:dart_shield/src/analyzers/code/rules/network/avoid_harcoded_urls.dart'; +import 'package:dart_shield/src/analyzers/code/rules/network/prefer_https_over_http.dart'; +import 'package:dart_shield/src/analyzers/code/rules/secrets/avoid_hardcoded_secrets.dart'; + +final List rules = [ + AvoidHardcodedSecrets(), + AvoidHardcodedUrls(), + AvoidWeakHashing(), + PreferHttpsOverHttp(), + PreferSecureRandom(), +]; diff --git a/lib/src/analyzers/code/rules/secrets/avoid_hardcoded_secrets.dart b/lib/src/analyzers/code/rules/secrets/avoid_hardcoded_secrets.dart new file mode 100644 index 0000000..8f88b83 --- /dev/null +++ b/lib/src/analyzers/code/rules/secrets/avoid_hardcoded_secrets.dart @@ -0,0 +1,109 @@ +import 'package:analyzer/analysis_rule/analysis_rule.dart'; +import 'package:analyzer/analysis_rule/rule_context.dart'; +import 'package:analyzer/analysis_rule/rule_visitor_registry.dart'; +import 'package:analyzer/dart/ast/ast.dart'; +import 'package:analyzer/dart/ast/visitor.dart'; +import 'package:analyzer/error/error.dart'; +import 'package:dart_shield/src/analyzers/code/rules/secrets/rule_provider.dart'; +import 'package:dart_shield/src/analyzers/utils/shannon_entropy.dart'; + +class AvoidHardcodedSecrets extends AnalysisRule { + AvoidHardcodedSecrets() + : super( + name: 'avoid_hardcoded_secrets', + description: 'Detects hardcoded secrets, API keys, and tokens.', + ); + + static const LintCode code = LintCode( + 'avoid_hardcoded_secrets', + 'Hardcoded secret detected: {0}', + correctionMessage: + 'Store secrets in environment variables or a secure vault.', + ); + + @override + DiagnosticCode get diagnosticCode => code; + + @override + void registerNodeProcessors( + RuleVisitorRegistry registry, + RuleContext context, + ) { + final visitor = _Visitor(this, context); + registry.addSimpleStringLiteral(this, visitor); + } +} + +class _Visitor extends SimpleAstVisitor { + _Visitor(this.rule, this.context); + + final AnalysisRule rule; + final RuleContext context; + + @override + void visitSimpleStringLiteral(SimpleStringLiteral node) { + final value = node.value; + // Ignore short strings to save CPU and reduce noise + if (value.length < 8) return; + + // Context Analysis (Variable Name, Map Key) + final contextString = _getContextString(node).toLowerCase(); + + final rules = RuleProvider.getRules(); + + for (final secretRule in rules) { + // 1. Keyword Check (Optimization & Context Validation) + // If the rule has keywords, at least one must exist in value OR context. + if (secretRule.keywords.isNotEmpty) { + final valueLower = value.toLowerCase(); + final hasKeywordInValue = secretRule.keywords.any(valueLower.contains); + final hasKeywordInContext = secretRule.keywords.any( + contextString.contains, + ); + + if (!hasKeywordInValue && !hasKeywordInContext) { + continue; + } + } + + // 2. Regex Check + if (!secretRule.pattern.hasMatch(value)) continue; + + // 3. Entropy Check + if (secretRule.minEntropy > 0) { + final entropy = ShannonEntropy.calculate(value); + if (entropy < secretRule.minEntropy) continue; + } + + // 4. Report + rule.reportAtNode(node, arguments: [secretRule.description]); + // Stop after first match per string to avoid duplicate noise + return; + } + } + + /// Extracts relevant context strings (variable names, keys) from the AST. + String _getContextString(SimpleStringLiteral node) { + final parent = node.parent; + + // Case: const apiKey = "..." + if (parent is VariableDeclaration) { + return parent.name.lexeme; + } + + // Case: var config = { 'apiKey': '...' } + if (parent is MapLiteralEntry && parent.value == node) { + final key = parent.key; + if (key is SimpleStringLiteral) { + return key.value; + } + } + + // Case: apiKey: "..." (Named parameter) + if (parent is NamedExpression) { + return parent.name.label.name; + } + + return ''; + } +} diff --git a/lib/src/analyzers/code/rules/secrets/rule_provider.dart b/lib/src/analyzers/code/rules/secrets/rule_provider.dart new file mode 100644 index 0000000..6d4864b --- /dev/null +++ b/lib/src/analyzers/code/rules/secrets/rule_provider.dart @@ -0,0 +1,69 @@ +import 'dart:convert'; +import 'dart:io'; + +import 'package:dart_shield/src/analyzers/code/rules/secrets/secret_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/secrets/secret_rules.dart'; +import 'package:dart_shield/src/generated/fallback_rules.dart'; +import 'package:path/path.dart' as path; + +class RuleProvider { + static List? _cachedRules; + + /// Returns the list of active secret detection rules. + /// + /// Priority: + /// 1. Local Cache file (~/.dart_shield/rules.json) + /// 2. Embedded Fallback rules + /// + /// Always includes [SecretRules.custom] rules. + static List getRules() { + if (_cachedRules != null) return _cachedRules!; + + final rules = []; + + // 1. Try loading from user cache + try { + final cacheFile = _getCacheFile(); + if (cacheFile.existsSync()) { + final jsonContent = cacheFile.readAsStringSync(); + rules.addAll(_parseRules(jsonContent)); + } + } on Exception catch (_) { + // Log error or silently fail to fallback? + // For now, we silently fallback to ensure stability. + } + + // 2. If cache missed or failed, load fallback + if (rules.isEmpty) { + try { + rules.addAll(_parseRules(fallbackRulesJson)); + } on Exception catch (e) { + // This should never happen if the generator is correct + // ignore: avoid_print + print('CRITICAL ERROR: Failed to parse embedded fallback rules: $e'); + } + } + + // 3. Add custom rules (always active) + rules.addAll(SecretRules.custom); + + _cachedRules = rules; + return rules; + } + + static List _parseRules(String jsonContent) { + final jsonList = jsonDecode(jsonContent) as List; + return jsonList + .map((e) => SecretRule.fromJson(e as Map)) + .toList(); + } + + static File _getCacheFile() { + final env = Platform.environment; + final home = env['HOME'] ?? env['USERPROFILE']; + if (home == null) { + throw Exception('Could not determine home directory'); + } + return File(path.join(home, '.dart_shield', 'rules.json')); + } +} diff --git a/lib/src/analyzers/code/rules/secrets/secret_rule.dart b/lib/src/analyzers/code/rules/secrets/secret_rule.dart new file mode 100644 index 0000000..f1ee3c0 --- /dev/null +++ b/lib/src/analyzers/code/rules/secrets/secret_rule.dart @@ -0,0 +1,61 @@ +/// Represents a rule for detecting a specific type of secret. +class SecretRule { + const SecretRule({ + required this.id, + required this.description, + required this.pattern, + this.keywords = const [], + this.minEntropy = 0.0, + }); + + factory SecretRule.fromJson(Map json) { + return SecretRule( + id: json['id'] as String, + description: json['description'] as String, + pattern: RegExp( + json['pattern'] as String, + caseSensitive: json['isCaseSensitive'] as bool? ?? true, + multiLine: json['isMultiLine'] as bool? ?? false, + ), + keywords: (json['keywords'] as List?)?.cast() ?? const [], + minEntropy: (json['minEntropy'] as num?)?.toDouble() ?? 0.0, + ); + } + + /// Unique identifier for the rule (e.g., 'aws-access-key'). + final String id; + + /// Human-readable description of what this rule detects. + final String description; + + /// The Regular Expression used to find potential secrets. + final RegExp pattern; + + /// A list of keywords to optimize the search. + /// The scanner can skip the regex check if none of these keywords are present + /// in the context (variable name, string content, etc.). + /// + /// If empty, the regex is always checked (slower). + final List keywords; + + /// The minimum Shannon Entropy required for a match to be considered valid. + /// + /// Many secrets (like API keys) appear random and thus have high entropy. + /// Setting a threshold helps reduce false positives from regular English + /// words or low-entropy test strings that might match the regex. + /// + /// A value of 0.0 disables this check. + final double minEntropy; + + Map toJson() { + return { + 'id': id, + 'description': description, + 'pattern': pattern.pattern, + 'isCaseSensitive': pattern.isCaseSensitive, + 'isMultiLine': pattern.isMultiLine, + 'keywords': keywords, + 'minEntropy': minEntropy, + }; + } +} diff --git a/lib/src/analyzers/code/rules/secrets/secret_rules.dart b/lib/src/analyzers/code/rules/secrets/secret_rules.dart new file mode 100644 index 0000000..fe85f60 --- /dev/null +++ b/lib/src/analyzers/code/rules/secrets/secret_rules.dart @@ -0,0 +1,31 @@ +import 'package:dart_shield/src/analyzers/code/rules/secrets/secret_rule.dart'; + +/// Collection of predefined rules for detecting secrets. +class SecretRules { + static final List custom = [ + // Generic High Entropy Assignment + // Catches things that look like random tokens assigned to suspicious + // variables. + // Note: This rule relies heavily on context checks (variable names) which + // will be implemented in the scanner logic, but the keywords here guide + // that. + SecretRule( + id: 'generic-api-key', + description: 'Potential high-entropy API key or secret detected.', + // Matches a contiguous string of 20+ alphanumeric characters/symbols. + pattern: RegExp(r'[a-zA-Z0-9_+=\-/]{20,}'), + keywords: [ + 'key', + 'api', + 'token', + 'secret', + 'password', + 'auth', + 'credential', + ], + // High entropy threshold to avoid flagging regular long words or URLs. + // A random 20-char hex string has an entropy of ~4 bits. + minEntropy: 3, + ), + ]; +} diff --git a/lib/src/analyzers/utils/analyzer_result.dart b/lib/src/analyzers/utils/analyzer_result.dart new file mode 100644 index 0000000..ea515e8 --- /dev/null +++ b/lib/src/analyzers/utils/analyzer_result.dart @@ -0,0 +1,98 @@ +/// Root object representing the result of `dart analyze --format=json` +class AnalyzeResult { + AnalyzeResult({required this.version, required this.diagnostics}); + + factory AnalyzeResult.fromJson(Map json) { + return AnalyzeResult( + version: json['version'] as int, + diagnostics: (json['diagnostics'] as List) + .map((e) => Diagnostic.fromJson(e as Map)) + .toList(), + ); + } + + final int version; + final List diagnostics; +} + +class Diagnostic { + Diagnostic({ + required this.code, + required this.severity, + required this.type, + required this.problemMessage, + this.location, + this.correctionMessage, + this.documentation, + }); + + factory Diagnostic.fromJson(Map json) { + return Diagnostic( + code: json['code'] as String, + severity: json['severity'] as String, + type: json['type'] as String, + location: json['location'] != null + ? Location.fromJson(json['location'] as Map) + : null, + problemMessage: json['problemMessage'] as String, + correctionMessage: json['correctionMessage'] as String?, + documentation: json['documentation'] as String?, + ); + } + + final String code; + final String severity; + final String type; + final Location? location; + final String problemMessage; + final String? correctionMessage; + final String? documentation; +} + +class Location { + Location({required this.file, required this.range}); + + factory Location.fromJson(Map json) { + return Location( + file: json['file'] as String, + range: SourceRange.fromJson(json['range'] as Map), + ); + } + + final String file; + final SourceRange range; +} + +class SourceRange { + SourceRange({required this.start, required this.end}); + + factory SourceRange.fromJson(Map json) { + return SourceRange( + start: SourcePosition.fromJson(json['start'] as Map), + end: SourcePosition.fromJson(json['end'] as Map), + ); + } + + final SourcePosition start; + final SourcePosition end; +} + +class SourcePosition { + SourcePosition({ + required this.offset, + required this.line, + required this.column, + }); + + factory SourcePosition.fromJson(Map json) { + return SourcePosition( + offset: json['offset'] as int, + line: json['line'] as int, + column: json['column'] as int, + ); + } + + final int offset; + final int line; + final int column; +} diff --git a/lib/src/analyzers/utils/diagnostic_mapper.dart b/lib/src/analyzers/utils/diagnostic_mapper.dart new file mode 100644 index 0000000..c18615e --- /dev/null +++ b/lib/src/analyzers/utils/diagnostic_mapper.dart @@ -0,0 +1,33 @@ +import 'package:analyzer/diagnostic/diagnostic.dart' as analyzer; +import 'package:analyzer/source/line_info.dart'; +import 'package:dart_shield/src/domain/analysis_issue.dart'; +import 'package:dart_shield/src/domain/issue_context.dart'; + +extension DiagnosticMapper on analyzer.Diagnostic { + AnalysisIssue toAnalysisIssue(String filePath, LineInfo lineInfo) { + final offset = problemMessage.offset; + final location = lineInfo.getLocation(offset); + + return AnalysisIssue( + ruleId: diagnosticCode.name.toLowerCase(), + severity: _mapSeverity(severity), + message: problemMessage.messageText.toString(), + context: FileContext( + filePath: filePath, + line: location.lineNumber, + column: location.columnNumber, + ), + ); + } + + Severity _mapSeverity(analyzer.Severity severity) { + switch (severity) { + case analyzer.Severity.error: + return Severity.high; + case analyzer.Severity.warning: + return Severity.medium; + case analyzer.Severity.info: + return Severity.low; + } + } +} diff --git a/lib/src/analyzers/utils/dto_mapper.dart b/lib/src/analyzers/utils/dto_mapper.dart new file mode 100644 index 0000000..739ef01 --- /dev/null +++ b/lib/src/analyzers/utils/dto_mapper.dart @@ -0,0 +1,48 @@ +import 'package:dart_shield/src/analyzers/code/rules/rule_metadata.dart'; +import 'package:dart_shield/src/analyzers/utils/analyzer_result.dart'; +import 'package:dart_shield/src/domain/analysis_issue.dart'; +import 'package:dart_shield/src/domain/issue_context.dart'; + +extension DtoDiagnosticMapper on Diagnostic { + AnalysisIssue? toAnalysisIssue() { + // If location is missing, we can't really report it in a specific context + // useful for the user in the same way. However, for now, we'll assume + // location is required for a valid issue. + if (location == null) return null; + + return AnalysisIssue( + ruleId: code, + severity: _mapSeverity(code), + message: problemMessage, + context: FileContext( + filePath: location!.file, + line: location!.range.start.line, + column: location!.range.start.column, + ), + ); + } + + /// Maps the rule ID to its severity level from the rule metadata registry. + /// + /// Falls back to severity based on the diagnostic severity string if the + /// rule is not found in the registry. + Severity _mapSeverity(String ruleId) { + // First, try to get severity from the rule metadata registry + final metadata = getRuleMetadata(ruleId); + if (metadata != null) { + return metadata.severity; + } + + // Fallback to diagnostic severity if rule not found + switch (severity.toUpperCase()) { + case 'ERROR': + return Severity.high; + case 'WARNING': + return Severity.medium; + case 'INFO': + return Severity.low; + default: + return Severity.info; + } + } +} diff --git a/lib/src/analyzers/utils/shannon_entropy.dart b/lib/src/analyzers/utils/shannon_entropy.dart new file mode 100644 index 0000000..1ff863f --- /dev/null +++ b/lib/src/analyzers/utils/shannon_entropy.dart @@ -0,0 +1,34 @@ +import 'dart:math'; + +/// Utility to calculate the Shannon Entropy of a string. +/// +/// Shannon Entropy provides a measure of the "randomness" or information +/// density of a string. It is measured in bits. +/// +/// - A string with all identical characters (e.g., "aaaaa") has an entropy +/// of 0. +/// - A string with a uniform distribution of unique characters has high +/// entropy. +/// +/// This is useful for detecting high-entropy secrets like API keys or tokens +/// versus low-entropy strings like "password123" or "example_string". +class ShannonEntropy { + static double calculate(String input) { + if (input.isEmpty) return 0; + + final frequency = {}; + for (final codeUnit in input.codeUnits) { + frequency[codeUnit] = (frequency[codeUnit] ?? 0) + 1; + } + + final length = input.length; + var entropy = 0.0; + + for (final count in frequency.values) { + final probability = count / length; + entropy -= probability * (log(probability) / ln2); + } + + return entropy; + } +} diff --git a/lib/src/cli/cli.dart b/lib/src/cli/cli.dart deleted file mode 100644 index a1da8fa..0000000 --- a/lib/src/cli/cli.dart +++ /dev/null @@ -1 +0,0 @@ -const packageName = 'dart_shield'; diff --git a/lib/src/cli/command_runner.dart b/lib/src/cli/command_runner.dart index 42827aa..f0bf2c6 100644 --- a/lib/src/cli/command_runner.dart +++ b/lib/src/cli/command_runner.dart @@ -1,8 +1,8 @@ import 'package:args/args.dart'; import 'package:args/command_runner.dart'; import 'package:cli_completion/cli_completion.dart'; -import 'package:dart_shield/src/cli/commands/commands.dart'; -import 'package:dart_shield/src/security_analyzer/exceptions/exceptions.dart'; +import 'package:dart_shield/src/cli/commands/analyze_command.dart'; +import 'package:dart_shield/src/cli/commands/init_command.dart'; import 'package:mason_logger/mason_logger.dart'; const executableName = 'dart_shield'; @@ -45,11 +45,6 @@ class ShieldCommandRunner extends CompletionCommandRunner { ..info('') ..info(e.usage); return ExitCode.usage.code; - } on InvalidConfigurationException catch (e) { - // On invalid configuration errors, show the error message and - // exit with an error code - _logger.err(e.message); - return ExitCode.config.code; } } diff --git a/lib/src/cli/commands/analyze.dart b/lib/src/cli/commands/analyze.dart deleted file mode 100644 index a80eb36..0000000 --- a/lib/src/cli/commands/analyze.dart +++ /dev/null @@ -1,91 +0,0 @@ -import 'dart:io'; - -import 'package:dart_shield/src/cli/commands/shield_command.dart'; -import 'package:dart_shield/src/security_analyzer/configuration/shield_config.dart'; -import 'package:dart_shield/src/security_analyzer/report/report.dart'; -import 'package:dart_shield/src/security_analyzer/security_analyzer.dart'; -import 'package:dart_shield/src/security_analyzer/workspace.dart'; -import 'package:mason_logger/mason_logger.dart'; - -class AnalyzeCommand extends ShieldCommand { - AnalyzeCommand({super.logger}) : _analyzer = SecurityAnalyzer(); - - final SecurityAnalyzer _analyzer; - - @override - String get description => - 'Analyzes path for possible security-related issues.'; - - @override - String get name => 'analyze'; - - @override - Future run() async { - if (!_isEnvironmentHealthy()) { - return ExitCode.usage.code; - } - - final workspace = _createWorkspace(); - final config = _parseShieldConfig(workspace); - final analysisResult = await _analyze(workspace, config); - _processReport(analysisResult); - return ExitCode.success.code; - } - - bool _isEnvironmentHealthy() { - final progress = logger.progress('Checking environment'); - if (!validWorkspace) { - progress.fail('Environment is unhealthy.'); - logger.err('Root/Target directory missing or does not exist.'); - return false; - } - progress.complete('Environment is healthy.'); - return true; - } - - Workspace _createWorkspace() { - final progress = logger.progress('Creating workspace'); - - final workspace = Workspace( - analyzedPaths: argResults.rest.isEmpty ? ['.'] : argResults.rest, - rootFolder: Directory.current.path, - ); - - progress.complete('Workspace created.'); - return workspace; - } - - ShieldConfig _parseShieldConfig(Workspace workspace) { - final progress = logger.progress('Parsing shield configuration'); - final config = ShieldConfig.fromFile(workspace.configPath); - progress.complete('Configuration parsed.'); - return config; - } - - Future _analyze( - Workspace workspace, - ShieldConfig config, - ) async { - final progress = logger.progress('Analyzing project'); - final report = await _analyzer.analyzeFromCli(workspace, config); - - // Log skipped files if any - if (report.skippedFiles.isNotEmpty) { - logger.warn('Could not analyze ${report.skippedFiles.length} file(s):'); - for (final file in report.skippedFiles) { - logger.warn(' - $file'); - } - } - - progress.complete('Project analyzed.'); - return report; - } - - void _processReport(ProjectReport report) { - final progress = logger.progress('Processing report'); - final reporter = ConsoleReport(); - final output = reporter.report(report); - progress.complete('Report processed'); - logger.info(output); - } -} diff --git a/lib/src/cli/commands/analyze_command.dart b/lib/src/cli/commands/analyze_command.dart new file mode 100644 index 0000000..b20f631 --- /dev/null +++ b/lib/src/cli/commands/analyze_command.dart @@ -0,0 +1,56 @@ +import 'package:dart_shield/src/cli/commands/shield_command.dart'; +import 'package:dart_shield/src/core/analyzer_factory.dart'; +import 'package:dart_shield/src/core/shield_run_config.dart'; +import 'package:dart_shield/src/core/shield_runner.dart'; + +class AnalyzeCommand extends ShieldCommand { + AnalyzeCommand({super.logger}) { + argParser + ..addOption( + 'reporter', + abbr: 'r', + allowed: ['console', 'json', 'both'], + defaultsTo: 'console', + help: 'Select the output format.', + ) + ..addOption( + 'min-severity', + abbr: 's', + allowed: ['info', 'low', 'medium', 'high'], + defaultsTo: 'info', + help: 'Minimum severity level to report.', + ) + ..addMultiOption( + 'only', + allowed: AnalyzerFactory.availableIds, + help: 'Run only specific analyzers (ignores config file settings).', + ) + ..addMultiOption( + 'exclude', + allowed: AnalyzerFactory.availableIds, + help: 'Exclude specific analyzers.', + ); + } + + @override + String get description => + 'Analyzes path for possible security-related issues.'; + + @override + String get name => 'analyze'; + + @override + Future run() async { + final severityStr = argResults['min-severity'] as String? ?? 'info'; + final config = ShieldRunConfig( + paths: argResults.rest.isEmpty ? ['.'] : argResults.rest, + only: argResults['only'] as List? ?? [], + exclude: argResults['exclude'] as List? ?? [], + reporterMode: argResults['reporter'] as String? ?? 'console', + minSeverity: ShieldRunConfig.parseSeverity(severityStr), + ); + + final runner = ShieldRunner(logger: logger); + return runner.run(config); + } +} diff --git a/lib/src/cli/commands/commands.dart b/lib/src/cli/commands/commands.dart deleted file mode 100644 index 1b771c6..0000000 --- a/lib/src/cli/commands/commands.dart +++ /dev/null @@ -1,2 +0,0 @@ -export 'analyze.dart'; -export 'init.dart'; diff --git a/lib/src/cli/commands/init.dart b/lib/src/cli/commands/init.dart deleted file mode 100644 index 7d3f323..0000000 --- a/lib/src/cli/commands/init.dart +++ /dev/null @@ -1,55 +0,0 @@ -import 'dart:io'; - -import 'package:dart_shield/src/cli/cli.dart'; -import 'package:dart_shield/src/cli/commands/shield_command.dart'; -import 'package:dart_shield/src/security_analyzer/workspace.dart'; -import 'package:mason_logger/mason_logger.dart'; - -class InitCommand extends ShieldCommand { - InitCommand({super.logger}) { - argParser.addFlag( - 'force', - abbr: 'f', - help: - 'Force initialization even if already initialized. This will ' - 'overwrite existing configuration.', - negatable: false, - ); - } - - @override - String get description => - 'Initialize $packageName with default config in the current directory.'; - - @override - String get name => 'init'; - - @override - Future run() async { - final progress = logger.progress('Initializing $packageName'); - - final workspace = Workspace( - analyzedPaths: [], - rootFolder: Directory.current.path, - ); - - if (workspace.configExists) { - progress.update('Checking force flag'); - final force = argResults['force'] as bool; - - if (!force) { - progress.fail('Initialization failed'); - logger - ..err('$packageName is already initialized') - ..err("Use '$packageName $name -f' to force initialization"); - return ExitCode.usage.code; - } - - progress.update('Force allowed - overwriting existing configuration'); - } - - workspace.createDefaultConfig(); - progress.complete('$packageName successfully initialized'); - return ExitCode.success.code; - } -} diff --git a/lib/src/cli/commands/init_command.dart b/lib/src/cli/commands/init_command.dart new file mode 100644 index 0000000..f55c12d --- /dev/null +++ b/lib/src/cli/commands/init_command.dart @@ -0,0 +1,55 @@ +// ignore_for_file: avoid_catches_without_on_clauses +import 'package:dart_shield/src/cli/commands/shield_command.dart'; +import 'package:dart_shield/src/configuration/config_manager.dart'; +import 'package:mason_logger/mason_logger.dart'; + +class InitCommand extends ShieldCommand { + InitCommand({super.logger}) { + argParser.addFlag( + 'force', + abbr: 'f', + help: 'Overwrite existing dart_shield configuration if present.', + negatable: false, + ); + } + + @override + String get description => 'Initialize Dart Shield in the current project.'; + + @override + String get name => 'init'; + + @override + Future run() async { + final force = argResults['force'] as bool? ?? false; + final progress = logger.progress('Initializing Shield...'); + + try { + final manager = ConfigManager(); + + if (!manager.exists) { + progress.fail('Initialization failed.'); + logger + ..err( + 'Could not find analysis_options.yaml in the current directory.', + ) + ..info( + 'Please run this command from the root of your Dart/Flutter project.', + ); + return ExitCode.config.code; + } + + progress.update('Updating analysis_options.yaml...'); + await manager.applyShieldConfig(force: force); + + progress.complete('Shield initialized successfully! ๐Ÿ›ก๏ธ'); + return ExitCode.success.code; + } catch (e, s) { + progress.fail('Initialization failed.'); + logger + ..err('$e') + ..detail('$s'); + return ExitCode.software.code; + } + } +} diff --git a/lib/src/configuration/config_manager.dart b/lib/src/configuration/config_manager.dart new file mode 100644 index 0000000..73b726f --- /dev/null +++ b/lib/src/configuration/config_manager.dart @@ -0,0 +1,83 @@ +import 'dart:io'; + +import 'package:yaml/yaml.dart'; +import 'package:yaml_edit/yaml_edit.dart'; + +class ConfigManager { + ConfigManager({String path = 'analysis_options.yaml'}) : _file = File(path); + final File _file; + + bool get exists => _file.existsSync(); + + Future applyShieldConfig({bool force = false}) async { + if (!exists) { + throw FileSystemException('Configuration file not found.', _file.path); + } + + final content = await _file.readAsString(); + + if (content.trim().isEmpty) { + await _file.writeAsString(_initialContent); + return; + } + + final editor = YamlEditor(content); + final yaml = loadYaml(content); + + _addPlugin(editor, yaml); + _addConfigSection(editor, yaml, force: force); + + await _file.writeAsString(editor.toString()); + } + + void _addPlugin(YamlEditor editor, dynamic yaml) { + const pluginName = 'dart_shield'; + + if (yaml == null || (yaml is Map && yaml.isEmpty)) { + editor.update(['plugins'], [pluginName]); + return; + } + + final plugins = yaml is Map ? yaml['plugins'] : null; + + if (plugins == null) { + editor.update(['plugins'], [pluginName]); + } else if (plugins is List) { + if (!plugins.contains(pluginName)) { + editor.appendToList(['plugins'], pluginName); + } + } + } + + void _addConfigSection( + YamlEditor editor, + dynamic yaml, { + required bool force, + }) { + const configKey = 'dart_shield'; + final hasConfig = yaml is Map && yaml.containsKey(configKey); + + if (!hasConfig || force) { + editor.update([configKey], _defaultShieldConfig); + } + } + + // --- TEMPLATES --- + + // Used if file was empty + static const String _initialContent = ''' +include: package:lints/recommended.yaml + +plugins: + - dart_shield + +dart_shield: + analyzers: + code: true + deps: true +'''; + + static const Map _defaultShieldConfig = { + 'analyzers': {'code': true, 'deps': true}, + }; +} diff --git a/lib/src/configuration/shield_config.dart b/lib/src/configuration/shield_config.dart new file mode 100644 index 0000000..1d2e09e --- /dev/null +++ b/lib/src/configuration/shield_config.dart @@ -0,0 +1,59 @@ +import 'dart:io'; + +import 'package:checked_yaml/checked_yaml.dart'; +import 'package:dart_shield/src/domain/exceptions.dart'; +import 'package:json_annotation/json_annotation.dart'; + +part 'shield_config.g.dart'; + +@JsonSerializable( + anyMap: true, + checked: true, + disallowUnrecognizedKeys: true, + createToJson: false, +) +class ShieldConfig { + const ShieldConfig({this.analyzers = const ShieldAnalyzersConfig()}); + + factory ShieldConfig.fromJson(Map map) => + _$ShieldConfigFromJson(map); + + final ShieldAnalyzersConfig analyzers; + + static Future load() async { + final file = File('analysis_options.yaml'); + if (!file.existsSync()) return const ShieldConfig(); + + final content = await file.readAsString(); + if (content.trim().isEmpty) return const ShieldConfig(); + + try { + return checkedYamlDecode(content, (m) { + if (m != null && m['dart_shield'] is Map) { + return ShieldConfig.fromJson(m['dart_shield'] as Map); + } + + return const ShieldConfig(); + }, sourceUrl: file.uri); + } on ParsedYamlException catch (e) { + throw ConfigException( + 'Failed to parse analysis_options.yaml', + e.formattedMessage, + ); + } + } +} + +@JsonSerializable(anyMap: true, checked: true, createToJson: false) +class ShieldAnalyzersConfig { + const ShieldAnalyzersConfig({this.code = true, this.deps = true}); + + factory ShieldAnalyzersConfig.fromJson(Map map) => + _$ShieldAnalyzersConfigFromJson(map); + + @JsonKey(defaultValue: true) + final bool code; + + @JsonKey(defaultValue: true) + final bool deps; +} diff --git a/lib/src/configuration/shield_config.g.dart b/lib/src/configuration/shield_config.g.dart new file mode 100644 index 0000000..9bcb68a --- /dev/null +++ b/lib/src/configuration/shield_config.g.dart @@ -0,0 +1,30 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'shield_config.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +ShieldConfig _$ShieldConfigFromJson(Map json) => + $checkedCreate('ShieldConfig', json, ($checkedConvert) { + $checkKeys(json, allowedKeys: const ['analyzers']); + final val = ShieldConfig( + analyzers: $checkedConvert( + 'analyzers', + (v) => v == null + ? const ShieldAnalyzersConfig() + : ShieldAnalyzersConfig.fromJson(v as Map), + ), + ); + return val; + }); + +ShieldAnalyzersConfig _$ShieldAnalyzersConfigFromJson(Map json) => + $checkedCreate('ShieldAnalyzersConfig', json, ($checkedConvert) { + final val = ShieldAnalyzersConfig( + code: $checkedConvert('code', (v) => v as bool? ?? true), + deps: $checkedConvert('deps', (v) => v as bool? ?? true), + ); + return val; + }); diff --git a/lib/src/core/analyzer_engine.dart b/lib/src/core/analyzer_engine.dart new file mode 100644 index 0000000..8b04c81 --- /dev/null +++ b/lib/src/core/analyzer_engine.dart @@ -0,0 +1,13 @@ +import 'package:dart_shield/src/analyzers/analyzer.dart'; +import 'package:dart_shield/src/domain/analyzer_result.dart'; + +class AnalyzerEngine { + AnalyzerEngine(this._analyzers); + + final List _analyzers; + + Future> runAll() async { + final tasks = _analyzers.map((analyzer) => analyzer.analyze()); + return Future.wait(tasks); + } +} diff --git a/lib/src/core/analyzer_factory.dart b/lib/src/core/analyzer_factory.dart new file mode 100644 index 0000000..9fd7e66 --- /dev/null +++ b/lib/src/core/analyzer_factory.dart @@ -0,0 +1,49 @@ +import 'package:dart_shield/src/analyzers/analyzer.dart'; +import 'package:dart_shield/src/analyzers/code/code_analyzer.dart'; +import 'package:dart_shield/src/configuration/shield_config.dart'; + +/// Defines the signature for creating an analyzer. +/// We pass the raw paths, and the factory decides how to use them. +typedef AnalyzerBuilder = Analyzer Function(List paths); + +class AnalyzerFactory { + static final Map _builders = { + 'code': (paths) => CodeAnalyzer(analyzedPaths: paths), + }; + + static List get availableIds => _builders.keys.toList(); + + /// Resolves and instantiates the analyzers + static List resolve({ + required List paths, + required ShieldConfig config, + List only = const [], + List exclude = const [], + }) { + final configEnabled = {'code': config.analyzers.code}; + + final selected = []; + + for (final entry in _builders.entries) { + final id = entry.key; + final builder = entry.value; + + if (_shouldRun(id, configEnabled[id] ?? true, only, exclude)) { + selected.add(builder(paths)); + } + } + + return selected; + } + + static bool _shouldRun( + String id, + bool isEnabledInYaml, + List only, + List exclude, + ) { + if (exclude.contains(id)) return false; + if (only.isNotEmpty) return only.contains(id); + return isEnabledInYaml; + } +} diff --git a/lib/src/core/shield_run_config.dart b/lib/src/core/shield_run_config.dart new file mode 100644 index 0000000..7fb6ccc --- /dev/null +++ b/lib/src/core/shield_run_config.dart @@ -0,0 +1,32 @@ +import 'package:dart_shield/src/domain/analysis_issue.dart'; + +class ShieldRunConfig { + const ShieldRunConfig({ + required this.paths, + this.only = const [], + this.exclude = const [], + this.reporterMode = 'console', + this.minSeverity = Severity.info, + }); + + final List paths; + final List only; + final List exclude; + final String reporterMode; + + /// Minimum severity level to report. + /// Issues below this severity level will be filtered out. + final Severity minSeverity; + + /// Parses a severity string to the corresponding [Severity] enum. + /// Returns [Severity.info] if the string is not recognized. + static Severity parseSeverity(String value) { + return switch (value.toLowerCase()) { + 'high' => Severity.high, + 'medium' => Severity.medium, + 'low' => Severity.low, + 'info' => Severity.info, + _ => Severity.info, + }; + } +} diff --git a/lib/src/core/shield_runner.dart b/lib/src/core/shield_runner.dart new file mode 100644 index 0000000..59663b7 --- /dev/null +++ b/lib/src/core/shield_runner.dart @@ -0,0 +1,104 @@ +import 'package:dart_shield/src/configuration/shield_config.dart'; +import 'package:dart_shield/src/core/analyzer_engine.dart'; +import 'package:dart_shield/src/core/analyzer_factory.dart'; +import 'package:dart_shield/src/core/shield_run_config.dart'; +import 'package:dart_shield/src/domain/analysis_issue.dart'; +import 'package:dart_shield/src/domain/analyzer_result.dart'; +import 'package:dart_shield/src/domain/exceptions.dart'; +import 'package:dart_shield/src/reporters/console_reporter.dart'; +import 'package:dart_shield/src/reporters/json_reporter.dart'; +import 'package:dart_shield/src/reporters/reporter.dart'; +import 'package:mason_logger/mason_logger.dart'; + +class ShieldRunner { + ShieldRunner({Logger? logger}) : _logger = logger ?? Logger(); + final Logger _logger; + + Future run(ShieldRunConfig runConfig) async { + try { + // 1. Logger Hygiene + if (runConfig.reporterMode == 'json') { + _logger.level = Level.error; + } + + // 2. Load Configuration + final fileConfig = await ShieldConfig.load(); + + // 3. Resolve Analyzers + final analyzers = AnalyzerFactory.resolve( + paths: runConfig.paths, + config: fileConfig, + only: runConfig.only, + exclude: runConfig.exclude, + ); + + if (analyzers.isEmpty) { + _logger.warn('No analyzers selected.'); + return ExitCode.config.code; + } + + // 4. Execution + _logger.info('๐Ÿ›ก๏ธ Running ${analyzers.length} analyzers...'); + final engine = AnalyzerEngine(analyzers); + var results = await engine.runAll(); + + // 5. Filter by minimum severity + results = _filterBySeverity(results, runConfig.minSeverity); + + // 6. Reporting + final reporters = _getReporters(runConfig.reporterMode); + await Future.wait(reporters.map((r) => r.report(results))); + + // 7. Exit Logic + return _calculateExitCode(results); + } on ShieldException catch (e) { + _logger.err(e.toString()); + if (e is ConfigException) return ExitCode.config.code; + return ExitCode.software.code; + } on Object catch (e, stack) { + _logger + ..err('Unexpected error: $e') + ..detail('$stack'); + return ExitCode.software.code; + } + } + + /// Filters analysis results to only include issues at or above the minimum + /// severity level. + List _filterBySeverity( + List results, + Severity minSeverity, + ) { + return results.map((result) { + if (result is AnalysisSuccess) { + final filteredIssues = result.issues + .where((issue) => issue.severity.index <= minSeverity.index) + .toList(); + return AnalysisSuccess( + analyzerId: result.analyzerId, + issues: filteredIssues, + duration: result.duration, + ); + } + return result; + }).toList(); + } + + List _getReporters(String mode) { + return switch (mode) { + 'json' => [JsonReporter()], + 'console' => [ConsoleReporter()], + _ => [ConsoleReporter()], + }; + } + + int _calculateExitCode(List results) { + if (results.any((r) => r is AnalysisFailure)) { + return ExitCode.software.code; + } + if (results.any((r) => r is AnalysisSuccess && r.issues.isNotEmpty)) { + return ExitCode.software.code; + } + return ExitCode.success.code; + } +} diff --git a/lib/src/domain/analysis_issue.dart b/lib/src/domain/analysis_issue.dart new file mode 100644 index 0000000..7ee2db4 --- /dev/null +++ b/lib/src/domain/analysis_issue.dart @@ -0,0 +1,27 @@ +import 'package:dart_shield/src/domain/issue_context.dart'; + +enum Severity { high, medium, low, info } + +class AnalysisIssue { + AnalysisIssue({ + required this.ruleId, + required this.severity, + required this.message, + required this.context, + }); + + final String ruleId; + final Severity severity; + final String message; + + final IssueContext context; + + Map toJson() { + return { + 'ruleId': ruleId, + 'severity': severity.name, + 'message': message, + 'context': context.toJson(), + }; + } +} diff --git a/lib/src/domain/analyzer_result.dart b/lib/src/domain/analyzer_result.dart new file mode 100644 index 0000000..cefd7d8 --- /dev/null +++ b/lib/src/domain/analyzer_result.dart @@ -0,0 +1,39 @@ +import 'package:dart_shield/src/domain/analysis_issue.dart'; + +sealed class AnalyzerResult { + String get analyzerId; + + Duration get duration; +} + +class AnalysisSuccess extends AnalyzerResult { + AnalysisSuccess({ + required this.analyzerId, + required this.duration, + required this.issues, + }); + + @override + final String analyzerId; + @override + final Duration duration; + + final List issues; +} + +class AnalysisFailure extends AnalyzerResult { + AnalysisFailure({ + required this.analyzerId, + required this.duration, + required this.errorMessage, + this.stackTrace, + }); + + @override + final String analyzerId; + @override + final Duration duration; + + final String errorMessage; + final StackTrace? stackTrace; +} diff --git a/lib/src/domain/exceptions.dart b/lib/src/domain/exceptions.dart new file mode 100644 index 0000000..1cd745f --- /dev/null +++ b/lib/src/domain/exceptions.dart @@ -0,0 +1,39 @@ +/// Base class for all exceptions thrown by dart_shield. +/// +/// These exceptions represent "expected" failure modes (configuration errors, +/// environment issues) that should be reported cleanly to the user, as opposed +/// to unexpected bugs (StateError, ArgumentError) which are crashes. +abstract class ShieldException implements Exception { + const ShieldException(this.message, [this.suggestion]); + + /// A human-readable error message explaining what went wrong. + final String message; + + /// An optional suggestion for the user on how to fix the issue. + final String? suggestion; + + @override + String toString() { + if (suggestion != null) { + return '$message\nTip: $suggestion'; + } + return message; + } +} + +/// Thrown when there is an issue with the `shield_options.yaml` configuration. +class ConfigException extends ShieldException { + const ConfigException(super.message, [super.suggestion]); +} + +/// Thrown when an external process (like `dart analyze`) fails to start or +/// crashes unexpectedly. +class ShieldProcessException extends ShieldException { + const ShieldProcessException(super.message, [super.suggestion]); +} + +/// Thrown when the analysis engine encounters an error while processing files. +/// This is distinct from finding vulnerabilities (which is a success case). +class AnalysisException extends ShieldException { + const AnalysisException(super.message, [super.suggestion]); +} diff --git a/lib/src/domain/issue_context.dart b/lib/src/domain/issue_context.dart new file mode 100644 index 0000000..827582a --- /dev/null +++ b/lib/src/domain/issue_context.dart @@ -0,0 +1,23 @@ +sealed class IssueContext { + Map toJson(); +} + +class FileContext extends IssueContext { + FileContext({ + required this.filePath, + required this.line, + required this.column, + }); + + final String filePath; + final int line; + final int column; + + @override + Map toJson() => { + 'type': 'file', + 'filePath': filePath, + 'line': line, + 'column': column, + }; +} diff --git a/lib/src/generated/fallback_rules.dart b/lib/src/generated/fallback_rules.dart new file mode 100644 index 0000000..28bf866 --- /dev/null +++ b/lib/src/generated/fallback_rules.dart @@ -0,0 +1,2371 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// Generated by tool/generate_rules.dart + +const String fallbackRulesJson = r''' +[ + { + "id": "1password-secret-key", + "description": "Uncovered a possible 1Password secret key, potentially compromising access to secrets in vaults.", + "pattern": "\\bA3-[A-Z0-9]{6}-(?:(?:[A-Z0-9]{11})|(?:[A-Z0-9]{6}-[A-Z0-9]{5}))-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}\\b", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "a3-" + ], + "minEntropy": 3.8 + }, + { + "id": "1password-service-account-token", + "description": "Uncovered a possible 1Password service account token, potentially compromising access to secrets in vaults.", + "pattern": "ops_eyJ[a-zA-Z0-9+/]{250,}={0,3}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "ops_" + ], + "minEntropy": 4.0 + }, + { + "id": "adafruit-api-key", + "description": "Identified a potential Adafruit API Key, which could lead to unauthorized access to Adafruit services and sensitive data exposure.", + "pattern": "[\\w.-]{0,50}?(?:adafruit)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9_-]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "adafruit" + ], + "minEntropy": 0.0 + }, + { + "id": "adobe-client-id", + "description": "Detected a pattern that resembles an Adobe OAuth Web Client ID, posing a risk of compromised Adobe integrations and data breaches.", + "pattern": "[\\w.-]{0,50}?(?:adobe)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "adobe" + ], + "minEntropy": 2.0 + }, + { + "id": "adobe-client-secret", + "description": "Discovered a potential Adobe Client Secret, which, if exposed, could allow unauthorized Adobe service access and data manipulation.", + "pattern": "\\b(p8e-[a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "p8e-" + ], + "minEntropy": 2.0 + }, + { + "id": "age-secret-key", + "description": "Discovered a potential Age encryption tool secret key, risking data decryption and unauthorized access to sensitive information.", + "pattern": "AGE-SECRET-KEY-1[QPZRY9X8GF2TVDW0S3JN54KHCE6MUA7L]{58}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "age-secret-key-1" + ], + "minEntropy": 0.0 + }, + { + "id": "airtable-api-key", + "description": "Uncovered a possible Airtable API Key, potentially compromising database access and leading to data leakage or alteration.", + "pattern": "[\\w.-]{0,50}?(?:airtable)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{17})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "airtable" + ], + "minEntropy": 0.0 + }, + { + "id": "airtable-personnal-access-token", + "description": "Uncovered a possible Airtable Personal AccessToken, potentially compromising database access and leading to data leakage or alteration.", + "pattern": "\\b(pat[[:alnum:]]{14}\\.[a-f0-9]{64})\\b", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "airtable" + ], + "minEntropy": 0.0 + }, + { + "id": "algolia-api-key", + "description": "Identified an Algolia API Key, which could result in unauthorized search operations and data exposure on Algolia-managed platforms.", + "pattern": "[\\w.-]{0,50}?(?:algolia)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "algolia" + ], + "minEntropy": 0.0 + }, + { + "id": "alibaba-access-key-id", + "description": "Detected an Alibaba Cloud AccessKey ID, posing a risk of unauthorized cloud resource access and potential data compromise.", + "pattern": "\\b(LTAI[a-z0-9]{20})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "ltai" + ], + "minEntropy": 2.0 + }, + { + "id": "alibaba-secret-key", + "description": "Discovered a potential Alibaba Cloud Secret Key, potentially allowing unauthorized operations and data access within Alibaba Cloud.", + "pattern": "[\\w.-]{0,50}?(?:alibaba)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{30})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "alibaba" + ], + "minEntropy": 2.0 + }, + { + "id": "anthropic-admin-api-key", + "description": "Detected an Anthropic Admin API Key, risking unauthorized access to administrative functions and sensitive AI model configurations.", + "pattern": "\\b(sk-ant-admin01-[a-zA-Z0-9_\\-]{93}AA)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sk-ant-admin01" + ], + "minEntropy": 0.0 + }, + { + "id": "anthropic-api-key", + "description": "Identified an Anthropic API Key, which may compromise AI assistant integrations and expose sensitive data to unauthorized access.", + "pattern": "\\b(sk-ant-api03-[a-zA-Z0-9_\\-]{93}AA)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sk-ant-api03" + ], + "minEntropy": 0.0 + }, + { + "id": "artifactory-api-key", + "description": "Detected an Artifactory api key, posing a risk unauthorized access to the central repository.", + "pattern": "\\bAKCp[A-Za-z0-9]{69}\\b", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "akcp" + ], + "minEntropy": 4.5 + }, + { + "id": "artifactory-reference-token", + "description": "Detected an Artifactory reference token, posing a risk of impersonation and unauthorized access to the central repository.", + "pattern": "\\bcmVmd[A-Za-z0-9]{59}\\b", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "cmvmd" + ], + "minEntropy": 4.5 + }, + { + "id": "asana-client-id", + "description": "Discovered a potential Asana Client ID, risking unauthorized access to Asana projects and sensitive task information.", + "pattern": "[\\w.-]{0,50}?(?:asana)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "asana" + ], + "minEntropy": 0.0 + }, + { + "id": "asana-client-secret", + "description": "Identified an Asana Client Secret, which could lead to compromised project management integrity and unauthorized access.", + "pattern": "[\\w.-]{0,50}?(?:asana)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "asana" + ], + "minEntropy": 0.0 + }, + { + "id": "aws-access-token", + "description": "Identified a pattern that may indicate AWS credentials, risking unauthorized cloud resource access and data breaches on AWS platforms.", + "pattern": "\\b((?:A3T[A-Z0-9]|AKIA|ASIA|ABIA|ACCA)[A-Z2-7]{16})\\b", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "a3t", + "akia", + "asia", + "abia", + "acca" + ], + "minEntropy": 3.0 + }, + { + "id": "aws-amazon-bedrock-api-key-long-lived", + "description": "Identified a pattern that may indicate long-lived Amazon Bedrock API keys, risking unauthorized Amazon Bedrock usage", + "pattern": "\\b(ABSK[A-Za-z0-9+/]{109,269}={0,2})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "absk" + ], + "minEntropy": 3.0 + }, + { + "id": "aws-amazon-bedrock-api-key-short-lived", + "description": "Identified a pattern that may indicate short-lived Amazon Bedrock API keys, risking unauthorized Amazon Bedrock usage", + "pattern": "bedrock-api-key-YmVkcm9jay5hbWF6b25hd3MuY29t", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "bedrock-api-key-" + ], + "minEntropy": 3.0 + }, + { + "id": "azure-ad-client-secret", + "description": "Azure AD Client Secret", + "pattern": "(?:^|[\\\\'\"\\x60\\s>=:(,)])([a-zA-Z0-9_~.]{3}\\dQ~[a-zA-Z0-9_~.-]{31,34})(?:$|[\\\\'\"\\x60\\s<),])", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "q~" + ], + "minEntropy": 3.0 + }, + { + "id": "beamer-api-token", + "description": "Detected a Beamer API token, potentially compromising content management and exposing sensitive notifications and updates.", + "pattern": "[\\w.-]{0,50}?(?:beamer)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(b_[a-z0-9=_\\-]{44})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "beamer" + ], + "minEntropy": 0.0 + }, + { + "id": "bitbucket-client-id", + "description": "Discovered a potential Bitbucket Client ID, risking unauthorized repository access and potential codebase exposure.", + "pattern": "[\\w.-]{0,50}?(?:bitbucket)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "bitbucket" + ], + "minEntropy": 0.0 + }, + { + "id": "bitbucket-client-secret", + "description": "Discovered a potential Bitbucket Client Secret, posing a risk of compromised code repositories and unauthorized access.", + "pattern": "[\\w.-]{0,50}?(?:bitbucket)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "bitbucket" + ], + "minEntropy": 0.0 + }, + { + "id": "bittrex-access-key", + "description": "Identified a Bittrex Access Key, which could lead to unauthorized access to cryptocurrency trading accounts and financial loss.", + "pattern": "[\\w.-]{0,50}?(?:bittrex)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "bittrex" + ], + "minEntropy": 0.0 + }, + { + "id": "bittrex-secret-key", + "description": "Detected a Bittrex Secret Key, potentially compromising cryptocurrency transactions and financial security.", + "pattern": "[\\w.-]{0,50}?(?:bittrex)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "bittrex" + ], + "minEntropy": 0.0 + }, + { + "id": "clickhouse-cloud-api-secret-key", + "description": "Identified a pattern that may indicate clickhouse cloud API secret key, risking unauthorized clickhouse cloud api access and data breaches on ClickHouse Cloud platforms.", + "pattern": "\\b(4b1d[A-Za-z0-9]{38})\\b", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "4b1d" + ], + "minEntropy": 3.0 + }, + { + "id": "clojars-api-token", + "description": "Uncovered a possible Clojars API token, risking unauthorized access to Clojure libraries and potential code manipulation.", + "pattern": "CLOJARS_[a-z0-9]{60}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "clojars_" + ], + "minEntropy": 2.0 + }, + { + "id": "cloudflare-api-key", + "description": "Detected a Cloudflare API Key, potentially compromising cloud application deployments and operational security.", + "pattern": "[\\w.-]{0,50}?(?:cloudflare)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9_-]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "cloudflare" + ], + "minEntropy": 2.0 + }, + { + "id": "cloudflare-global-api-key", + "description": "Detected a Cloudflare Global API Key, potentially compromising cloud application deployments and operational security.", + "pattern": "[\\w.-]{0,50}?(?:cloudflare)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{37})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "cloudflare" + ], + "minEntropy": 2.0 + }, + { + "id": "cloudflare-origin-ca-key", + "description": "Detected a Cloudflare Origin CA Key, potentially compromising cloud application deployments and operational security.", + "pattern": "\\b(v1\\.0-[a-f0-9]{24}-[a-f0-9]{146})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "cloudflare", + "v1.0-" + ], + "minEntropy": 2.0 + }, + { + "id": "codecov-access-token", + "description": "Found a pattern resembling a Codecov Access Token, posing a risk of unauthorized access to code coverage reports and sensitive data.", + "pattern": "[\\w.-]{0,50}?(?:codecov)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "codecov" + ], + "minEntropy": 0.0 + }, + { + "id": "cohere-api-token", + "description": "Identified a Cohere Token, posing a risk of unauthorized access to AI services and data manipulation.", + "pattern": "[\\w.-]{0,50}?(?:[\\w.-]{0,50}?(?:cohere|CO_API_KEY)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3})(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-zA-Z0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "cohere", + "co_api_key" + ], + "minEntropy": 4.0 + }, + { + "id": "coinbase-access-token", + "description": "Detected a Coinbase Access Token, posing a risk of unauthorized access to cryptocurrency accounts and financial transactions.", + "pattern": "[\\w.-]{0,50}?(?:coinbase)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9_-]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "coinbase" + ], + "minEntropy": 0.0 + }, + { + "id": "confluent-access-token", + "description": "Identified a Confluent Access Token, which could compromise access to streaming data platforms and sensitive data flow.", + "pattern": "[\\w.-]{0,50}?(?:confluent)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "confluent" + ], + "minEntropy": 0.0 + }, + { + "id": "confluent-secret-key", + "description": "Found a Confluent Secret Key, potentially risking unauthorized operations and data access within Confluent services.", + "pattern": "[\\w.-]{0,50}?(?:confluent)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "confluent" + ], + "minEntropy": 0.0 + }, + { + "id": "contentful-delivery-api-token", + "description": "Discovered a Contentful delivery API token, posing a risk to content management systems and data integrity.", + "pattern": "[\\w.-]{0,50}?(?:contentful)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{43})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "contentful" + ], + "minEntropy": 0.0 + }, + { + "id": "curl-auth-header", + "description": "Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.", + "pattern": "\\bcurl\\b(?:.*?|.*?(?:[\\r\\n]{1,2}.*?){1,5})[ \\t\\n\\r](?:-H|--header)(?:=|[ \\t]{0,5})(?:\"(?:Authorization:[ \\t]{0,5}(?:Basic[ \\t]([a-z0-9+/]{8,}={0,3})|(?:Bearer|(?:Api-)?Token)[ \\t]([\\w=~@.+/-]{8,})|([\\w=~@.+/-]{8,}))|(?:(?:X-(?:[a-z]+-)?)?(?:Api-?)?(?:Key|Token)):[ \\t]{0,5}([\\w=~@.+/-]{8,}))\"|'(?:Authorization:[ \\t]{0,5}(?:Basic[ \\t]([a-z0-9+/]{8,}={0,3})|(?:Bearer|(?:Api-)?Token)[ \\t]([\\w=~@.+/-]{8,})|([\\w=~@.+/-]{8,}))|(?:(?:X-(?:[a-z]+-)?)?(?:Api-?)?(?:Key|Token)):[ \\t]{0,5}([\\w=~@.+/-]{8,}))')(?:\\B|\\s|\\z)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "curl" + ], + "minEntropy": 2.75 + }, + { + "id": "curl-auth-user", + "description": "Discovered a potential basic authorization token provided in a curl command, which could compromise the curl accessed resource.", + "pattern": "\\bcurl\\b(?:.*|.*(?:[\\r\\n]{1,2}.*){1,5})[ \\t\\n\\r](?:-u|--user)(?:=|[ \\t]{0,5})(\"(:[^\"]{3,}|[^:\"]{3,}:|[^:\"]{3,}:[^\"]{3,})\"|'([^:']{3,}:[^']{3,})'|((?:\"[^\"]{3,}\"|'[^']{3,}'|[\\w$@.-]+):(?:\"[^\"]{3,}\"|'[^']{3,}'|[\\w${}@.-]+)))(?:\\s|\\z)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "curl" + ], + "minEntropy": 2.0 + }, + { + "id": "databricks-api-token", + "description": "Uncovered a Databricks API token, which may compromise big data analytics platforms and sensitive data processing.", + "pattern": "\\b(dapi[a-f0-9]{32}(?:-\\d)?)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "dapi" + ], + "minEntropy": 3.0 + }, + { + "id": "datadog-access-token", + "description": "Detected a Datadog Access Token, potentially risking monitoring and analytics data exposure and manipulation.", + "pattern": "[\\w.-]{0,50}?(?:datadog)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "datadog" + ], + "minEntropy": 0.0 + }, + { + "id": "defined-networking-api-token", + "description": "Identified a Defined Networking API token, which could lead to unauthorized network operations and data breaches.", + "pattern": "[\\w.-]{0,50}?(?:dnkey)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(dnkey-[a-z0-9=_\\-]{26}-[a-z0-9=_\\-]{52})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "dnkey" + ], + "minEntropy": 0.0 + }, + { + "id": "digitalocean-access-token", + "description": "Found a DigitalOcean OAuth Access Token, risking unauthorized cloud resource access and data compromise.", + "pattern": "\\b(doo_v1_[a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "doo_v1_" + ], + "minEntropy": 3.0 + }, + { + "id": "digitalocean-pat", + "description": "Discovered a DigitalOcean Personal Access Token, posing a threat to cloud infrastructure security and data privacy.", + "pattern": "\\b(dop_v1_[a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "dop_v1_" + ], + "minEntropy": 3.0 + }, + { + "id": "digitalocean-refresh-token", + "description": "Uncovered a DigitalOcean OAuth Refresh Token, which could allow prolonged unauthorized access and resource manipulation.", + "pattern": "\\b(dor_v1_[a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "dor_v1_" + ], + "minEntropy": 0.0 + }, + { + "id": "discord-api-token", + "description": "Detected a Discord API key, potentially compromising communication channels and user data privacy on Discord.", + "pattern": "[\\w.-]{0,50}?(?:discord)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "discord" + ], + "minEntropy": 0.0 + }, + { + "id": "discord-client-id", + "description": "Identified a Discord client ID, which may lead to unauthorized integrations and data exposure in Discord applications.", + "pattern": "[\\w.-]{0,50}?(?:discord)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9]{18})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "discord" + ], + "minEntropy": 2.0 + }, + { + "id": "discord-client-secret", + "description": "Discovered a potential Discord client secret, risking compromised Discord bot integrations and data leaks.", + "pattern": "[\\w.-]{0,50}?(?:discord)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "discord" + ], + "minEntropy": 2.0 + }, + { + "id": "doppler-api-token", + "description": "Discovered a Doppler API token, posing a risk to environment and secrets management security.", + "pattern": "dp\\.pt\\.[a-z0-9]{43}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "dp.pt." + ], + "minEntropy": 2.0 + }, + { + "id": "droneci-access-token", + "description": "Detected a Droneci Access Token, potentially compromising continuous integration and deployment workflows.", + "pattern": "[\\w.-]{0,50}?(?:droneci)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "droneci" + ], + "minEntropy": 0.0 + }, + { + "id": "dropbox-api-token", + "description": "Identified a Dropbox API secret, which could lead to unauthorized file access and data breaches in Dropbox storage.", + "pattern": "[\\w.-]{0,50}?(?:dropbox)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{15})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "dropbox" + ], + "minEntropy": 0.0 + }, + { + "id": "dropbox-long-lived-api-token", + "description": "Found a Dropbox long-lived API token, risking prolonged unauthorized access to cloud storage and sensitive data.", + "pattern": "[\\w.-]{0,50}?(?:dropbox)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{11}(AAAAAAAAAA)[a-z0-9\\-_=]{43})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "dropbox" + ], + "minEntropy": 0.0 + }, + { + "id": "dropbox-short-lived-api-token", + "description": "Discovered a Dropbox short-lived API token, posing a risk of temporary but potentially harmful data access and manipulation.", + "pattern": "[\\w.-]{0,50}?(?:dropbox)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(sl\\.[a-z0-9\\-=_]{135})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "dropbox" + ], + "minEntropy": 0.0 + }, + { + "id": "duffel-api-token", + "description": "Uncovered a Duffel API token, which may compromise travel platform integrations and sensitive customer data.", + "pattern": "duffel_(?:test|live)_[a-z0-9_\\-=]{43}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "duffel_" + ], + "minEntropy": 2.0 + }, + { + "id": "dynatrace-api-token", + "description": "Detected a Dynatrace API token, potentially risking application performance monitoring and data exposure.", + "pattern": "dt0c01\\.[a-z0-9]{24}\\.[a-z0-9]{64}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "dt0c01." + ], + "minEntropy": 4.0 + }, + { + "id": "easypost-api-token", + "description": "Identified an EasyPost API token, which could lead to unauthorized postal and shipment service access and data exposure.", + "pattern": "\\bEZAK[a-z0-9]{54}\\b", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "ezak" + ], + "minEntropy": 2.0 + }, + { + "id": "easypost-test-api-token", + "description": "Detected an EasyPost test API token, risking exposure of test environments and potentially sensitive shipment data.", + "pattern": "\\bEZTK[a-z0-9]{54}\\b", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "eztk" + ], + "minEntropy": 2.0 + }, + { + "id": "facebook-access-token", + "description": "Discovered a Facebook Access Token, posing a risk of unauthorized access to Facebook accounts and personal data exposure.", + "pattern": "\\b(\\d{15,16}(\\||%)[0-9a-z\\-_]{27,40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "facebook" + ], + "minEntropy": 3.0 + }, + { + "id": "facebook-page-access-token", + "description": "Discovered a Facebook Page Access Token, posing a risk of unauthorized access to Facebook accounts and personal data exposure.", + "pattern": "\\b(EAA[MC][a-z0-9]{100,})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "eaam", + "eaac" + ], + "minEntropy": 4.0 + }, + { + "id": "facebook-secret", + "description": "Discovered a Facebook Application secret, posing a risk of unauthorized access to Facebook accounts and personal data exposure.", + "pattern": "[\\w.-]{0,50}?(?:facebook)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "facebook" + ], + "minEntropy": 3.0 + }, + { + "id": "fastly-api-token", + "description": "Uncovered a Fastly API key, which may compromise CDN and edge cloud services, leading to content delivery and security issues.", + "pattern": "[\\w.-]{0,50}?(?:fastly)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "fastly" + ], + "minEntropy": 0.0 + }, + { + "id": "finicity-api-token", + "description": "Detected a Finicity API token, potentially risking financial data access and unauthorized financial operations.", + "pattern": "[\\w.-]{0,50}?(?:finicity)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "finicity" + ], + "minEntropy": 0.0 + }, + { + "id": "finicity-client-secret", + "description": "Identified a Finicity Client Secret, which could lead to compromised financial service integrations and data breaches.", + "pattern": "[\\w.-]{0,50}?(?:finicity)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{20})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "finicity" + ], + "minEntropy": 0.0 + }, + { + "id": "finnhub-access-token", + "description": "Found a Finnhub Access Token, risking unauthorized access to financial market data and analytics.", + "pattern": "[\\w.-]{0,50}?(?:finnhub)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{20})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "finnhub" + ], + "minEntropy": 0.0 + }, + { + "id": "flickr-access-token", + "description": "Discovered a Flickr Access Token, posing a risk of unauthorized photo management and potential data leakage.", + "pattern": "[\\w.-]{0,50}?(?:flickr)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "flickr" + ], + "minEntropy": 0.0 + }, + { + "id": "flutterwave-encryption-key", + "description": "Uncovered a Flutterwave Encryption Key, which may compromise payment processing and sensitive financial information.", + "pattern": "FLWSECK_TEST-[a-h0-9]{12}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "flwseck_test" + ], + "minEntropy": 2.0 + }, + { + "id": "flutterwave-public-key", + "description": "Detected a Finicity Public Key, potentially exposing public cryptographic operations and integrations.", + "pattern": "FLWPUBK_TEST-[a-h0-9]{32}-X", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "flwpubk_test" + ], + "minEntropy": 2.0 + }, + { + "id": "flutterwave-secret-key", + "description": "Identified a Flutterwave Secret Key, risking unauthorized financial transactions and data breaches.", + "pattern": "FLWSECK_TEST-[a-h0-9]{32}-X", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "flwseck_test" + ], + "minEntropy": 2.0 + }, + { + "id": "flyio-access-token", + "description": "Uncovered a Fly.io API key", + "pattern": "\\b((?:fo1_[\\w-]{43}|fm1[ar]_[a-zA-Z0-9+\\/]{100,}={0,3}|fm2_[a-zA-Z0-9+\\/]{100,}={0,3}))(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "fo1_", + "fm1", + "fm2_" + ], + "minEntropy": 4.0 + }, + { + "id": "frameio-api-token", + "description": "Found a Frame.io API token, potentially compromising video collaboration and project management.", + "pattern": "fio-u-[a-z0-9\\-_=]{64}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "fio-u-" + ], + "minEntropy": 0.0 + }, + { + "id": "freemius-secret-key", + "description": "Detected a Freemius secret key, potentially exposing sensitive information.", + "pattern": "[\"']secret_key[\"']\\s*=>\\s*[\"'](sk_[\\S]{29})[\"']", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "secret_key" + ], + "minEntropy": 0.0 + }, + { + "id": "freshbooks-access-token", + "description": "Discovered a Freshbooks Access Token, posing a risk to accounting software access and sensitive financial data exposure.", + "pattern": "[\\w.-]{0,50}?(?:freshbooks)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "freshbooks" + ], + "minEntropy": 0.0 + }, + { + "id": "gcp-api-key", + "description": "Uncovered a GCP API key, which could lead to unauthorized access to Google Cloud services and data breaches.", + "pattern": "\\b(AIza[\\w-]{35})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "aiza" + ], + "minEntropy": 4.0 + }, + { + "id": "github-app-token", + "description": "Identified a GitHub App Token, which may compromise GitHub application integrations and source code security.", + "pattern": "(?:ghu|ghs)_[0-9a-zA-Z]{36}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "ghu_", + "ghs_" + ], + "minEntropy": 3.0 + }, + { + "id": "github-fine-grained-pat", + "description": "Found a GitHub Fine-Grained Personal Access Token, risking unauthorized repository access and code manipulation.", + "pattern": "github_pat_\\w{82}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "github_pat_" + ], + "minEntropy": 3.0 + }, + { + "id": "github-oauth", + "description": "Discovered a GitHub OAuth Access Token, posing a risk of compromised GitHub account integrations and data leaks.", + "pattern": "gho_[0-9a-zA-Z]{36}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "gho_" + ], + "minEntropy": 3.0 + }, + { + "id": "github-pat", + "description": "Uncovered a GitHub Personal Access Token, potentially leading to unauthorized repository access and sensitive content exposure.", + "pattern": "ghp_[0-9a-zA-Z]{36}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "ghp_" + ], + "minEntropy": 3.0 + }, + { + "id": "github-refresh-token", + "description": "Detected a GitHub Refresh Token, which could allow prolonged unauthorized access to GitHub services.", + "pattern": "ghr_[0-9a-zA-Z]{36}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "ghr_" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-cicd-job-token", + "description": "Identified a GitLab CI/CD Job Token, potential access to projects and some APIs on behalf of a user while the CI job is running.", + "pattern": "glcbt-[0-9a-zA-Z]{1,5}_[0-9a-zA-Z_-]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glcbt-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-deploy-token", + "description": "Identified a GitLab Deploy Token, risking access to repositories, packages and containers with write access.", + "pattern": "gldt-[0-9a-zA-Z_\\-]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "gldt-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-feature-flag-client-token", + "description": "Identified a GitLab feature flag client token, risks exposing user lists and features flags used by an application.", + "pattern": "glffct-[0-9a-zA-Z_\\-]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glffct-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-feed-token", + "description": "Identified a GitLab feed token, risking exposure of user data.", + "pattern": "glft-[0-9a-zA-Z_\\-]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glft-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-incoming-mail-token", + "description": "Identified a GitLab incoming mail token, risking manipulation of data sent by mail.", + "pattern": "glimt-[0-9a-zA-Z_\\-]{25}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glimt-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-kubernetes-agent-token", + "description": "Identified a GitLab Kubernetes Agent token, risking access to repos and registry of projects connected via agent.", + "pattern": "glagent-[0-9a-zA-Z_\\-]{50}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glagent-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-oauth-app-secret", + "description": "Identified a GitLab OIDC Application Secret, risking access to apps using GitLab as authentication provider.", + "pattern": "gloas-[0-9a-zA-Z_\\-]{64}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "gloas-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-pat", + "description": "Identified a GitLab Personal Access Token, risking unauthorized access to GitLab repositories and codebase exposure.", + "pattern": "glpat-[\\w-]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glpat-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-pat-routable", + "description": "Identified a GitLab Personal Access Token (routable), risking unauthorized access to GitLab repositories and codebase exposure.", + "pattern": "\\bglpat-[0-9a-zA-Z_-]{27,300}\\.[0-9a-z]{2}[0-9a-z]{7}\\b", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glpat-" + ], + "minEntropy": 4.0 + }, + { + "id": "gitlab-ptt", + "description": "Found a GitLab Pipeline Trigger Token, potentially compromising continuous integration workflows and project security.", + "pattern": "glptt-[0-9a-f]{40}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glptt-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-rrt", + "description": "Discovered a GitLab Runner Registration Token, posing a risk to CI/CD pipeline integrity and unauthorized access.", + "pattern": "GR1348941[\\w-]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "gr1348941" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-runner-authentication-token", + "description": "Discovered a GitLab Runner Authentication Token, posing a risk to CI/CD pipeline integrity and unauthorized access.", + "pattern": "glrt-[0-9a-zA-Z_\\-]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glrt-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-runner-authentication-token-routable", + "description": "Discovered a GitLab Runner Authentication Token (Routable), posing a risk to CI/CD pipeline integrity and unauthorized access.", + "pattern": "\\bglrt-t\\d_[0-9a-zA-Z_\\-]{27,300}\\.[0-9a-z]{2}[0-9a-z]{7}\\b", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glrt-" + ], + "minEntropy": 4.0 + }, + { + "id": "gitlab-scim-token", + "description": "Discovered a GitLab SCIM Token, posing a risk to unauthorized access for a organization or instance.", + "pattern": "glsoat-[0-9a-zA-Z_\\-]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glsoat-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-session-cookie", + "description": "Discovered a GitLab Session Cookie, posing a risk to unauthorized access to a user account.", + "pattern": "_gitlab_session=[0-9a-z]{32}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "_gitlab_session=" + ], + "minEntropy": 3.0 + }, + { + "id": "gitter-access-token", + "description": "Uncovered a Gitter Access Token, which may lead to unauthorized access to chat and communication services.", + "pattern": "[\\w.-]{0,50}?(?:gitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9_-]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "gitter" + ], + "minEntropy": 0.0 + }, + { + "id": "gocardless-api-token", + "description": "Detected a GoCardless API token, potentially risking unauthorized direct debit payment operations and financial data exposure.", + "pattern": "[\\w.-]{0,50}?(?:gocardless)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(live_[a-z0-9\\-_=]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "live_", + "gocardless" + ], + "minEntropy": 0.0 + }, + { + "id": "grafana-api-key", + "description": "Identified a Grafana API key, which could compromise monitoring dashboards and sensitive data analytics.", + "pattern": "\\b(eyJrIjoi[A-Za-z0-9]{70,400}={0,3})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "eyjrijoi" + ], + "minEntropy": 3.0 + }, + { + "id": "grafana-cloud-api-token", + "description": "Found a Grafana cloud API token, risking unauthorized access to cloud-based monitoring services and data exposure.", + "pattern": "\\b(glc_[A-Za-z0-9+/]{32,400}={0,3})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "glc_" + ], + "minEntropy": 3.0 + }, + { + "id": "grafana-service-account-token", + "description": "Discovered a Grafana service account token, posing a risk of compromised monitoring services and data integrity.", + "pattern": "\\b(glsa_[A-Za-z0-9]{32}_[A-Fa-f0-9]{8})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "glsa_" + ], + "minEntropy": 3.0 + }, + { + "id": "harness-api-key", + "description": "Identified a Harness Access Token (PAT or SAT), risking unauthorized access to a Harness account.", + "pattern": "(?:pat|sat)\\.[a-zA-Z0-9_-]{22}\\.[a-zA-Z0-9]{24}\\.[a-zA-Z0-9]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "pat.", + "sat." + ], + "minEntropy": 0.0 + }, + { + "id": "hashicorp-tf-password", + "description": "Identified a HashiCorp Terraform password field, risking unauthorized infrastructure configuration and security breaches.", + "pattern": "[\\w.-]{0,50}?(?:administrator_login_password|password)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(\"[a-z0-9=_\\-]{8,20}\")(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "administrator_login_password", + "password" + ], + "minEntropy": 2.0 + }, + { + "id": "heroku-api-key", + "description": "Detected a Heroku API Key, potentially compromising cloud application deployments and operational security.", + "pattern": "[\\w.-]{0,50}?(?:heroku)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "heroku" + ], + "minEntropy": 0.0 + }, + { + "id": "heroku-api-key-v2", + "description": "Detected a Heroku API Key, potentially compromising cloud application deployments and operational security.", + "pattern": "\\b((HRKU-AA[0-9a-zA-Z_-]{58}))(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "hrku-aa" + ], + "minEntropy": 4.0 + }, + { + "id": "hubspot-api-key", + "description": "Found a HubSpot API Token, posing a risk to CRM data integrity and unauthorized marketing operations.", + "pattern": "[\\w.-]{0,50}?(?:hubspot)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "hubspot" + ], + "minEntropy": 0.0 + }, + { + "id": "huggingface-access-token", + "description": "Discovered a Hugging Face Access token, which could lead to unauthorized access to AI models and sensitive data.", + "pattern": "\\b(hf_(?:[a-z]{34}))(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "hf_" + ], + "minEntropy": 2.0 + }, + { + "id": "huggingface-organization-api-token", + "description": "Uncovered a Hugging Face Organization API token, potentially compromising AI organization accounts and associated data.", + "pattern": "\\b(api_org_(?:[a-z]{34}))(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "api_org_" + ], + "minEntropy": 2.0 + }, + { + "id": "infracost-api-token", + "description": "Detected an Infracost API Token, risking unauthorized access to cloud cost estimation tools and financial data.", + "pattern": "\\b(ico-[a-zA-Z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "ico-" + ], + "minEntropy": 3.0 + }, + { + "id": "intercom-api-key", + "description": "Identified an Intercom API Token, which could compromise customer communication channels and data privacy.", + "pattern": "[\\w.-]{0,50}?(?:intercom)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{60})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "intercom" + ], + "minEntropy": 0.0 + }, + { + "id": "intra42-client-secret", + "description": "Found a Intra42 client secret, which could lead to unauthorized access to the 42School API and sensitive data.", + "pattern": "\\b(s-s4t2(?:ud|af)-[abcdef0123456789]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "intra", + "s-s4t2ud-", + "s-s4t2af-" + ], + "minEntropy": 3.0 + }, + { + "id": "jfrog-api-key", + "description": "Found a JFrog API Key, posing a risk of unauthorized access to software artifact repositories and build pipelines.", + "pattern": "[\\w.-]{0,50}?(?:jfrog|artifactory|bintray|xray)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{73})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "jfrog", + "artifactory", + "bintray", + "xray" + ], + "minEntropy": 0.0 + }, + { + "id": "jfrog-identity-token", + "description": "Discovered a JFrog Identity Token, potentially compromising access to JFrog services and sensitive software artifacts.", + "pattern": "[\\w.-]{0,50}?(?:jfrog|artifactory|bintray|xray)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "jfrog", + "artifactory", + "bintray", + "xray" + ], + "minEntropy": 0.0 + }, + { + "id": "jwt", + "description": "Uncovered a JSON Web Token, which may lead to unauthorized access to web applications and sensitive user data.", + "pattern": "\\b(ey[a-zA-Z0-9]{17,}\\.ey[a-zA-Z0-9\\/\\\\_-]{17,}\\.(?:[a-zA-Z0-9\\/\\\\_-]{10,}={0,2})?)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "ey" + ], + "minEntropy": 3.0 + }, + { + "id": "kraken-access-token", + "description": "Identified a Kraken Access Token, potentially compromising cryptocurrency trading accounts and financial security.", + "pattern": "[\\w.-]{0,50}?(?:kraken)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9\\/=_\\+\\-]{80,90})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "kraken" + ], + "minEntropy": 0.0 + }, + { + "id": "kubernetes-secret-yaml", + "description": "Possible Kubernetes Secret detected, posing a risk of leaking credentials/tokens from your deployments", + "pattern": "(?:\\bkind:[ \\t]*[\"']?\\bsecret\\b[\"']?(?:.){0,200}?\\bdata:(?:.){0,100}?\\s+([\\w.-]+:(?:[ \\t]*(?:\\||>[-+]?)\\s+)?[ \\t]*(?:[\"']?[a-z0-9+/]{10,}={0,3}[\"']?|\\{\\{[ \\t\\w\"|$:=,.-]+}}|\"\"|''))|\\bdata:(?:.){0,100}?\\s+([\\w.-]+:(?:[ \\t]*(?:\\||>[-+]?)\\s+)?[ \\t]*(?:[\"']?[a-z0-9+/]{10,}={0,3}[\"']?|\\{\\{[ \\t\\w\"|$:=,.-]+}}|\"\"|''))(?:.){0,200}?\\bkind:[ \\t]*[\"']?\\bsecret\\b[\"']?)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "secret" + ], + "minEntropy": 0.0 + }, + { + "id": "kucoin-access-token", + "description": "Found a Kucoin Access Token, risking unauthorized access to cryptocurrency exchange services and transactions.", + "pattern": "[\\w.-]{0,50}?(?:kucoin)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{24})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "kucoin" + ], + "minEntropy": 0.0 + }, + { + "id": "kucoin-secret-key", + "description": "Discovered a Kucoin Secret Key, which could lead to compromised cryptocurrency operations and financial data breaches.", + "pattern": "[\\w.-]{0,50}?(?:kucoin)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "kucoin" + ], + "minEntropy": 0.0 + }, + { + "id": "launchdarkly-access-token", + "description": "Uncovered a Launchdarkly Access Token, potentially compromising feature flag management and application functionality.", + "pattern": "[\\w.-]{0,50}?(?:launchdarkly)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "launchdarkly" + ], + "minEntropy": 0.0 + }, + { + "id": "linear-api-key", + "description": "Detected a Linear API Token, posing a risk to project management tools and sensitive task data.", + "pattern": "lin_api_[a-z0-9]{40}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "lin_api_" + ], + "minEntropy": 2.0 + }, + { + "id": "linear-client-secret", + "description": "Identified a Linear Client Secret, which may compromise secure integrations and sensitive project management data.", + "pattern": "[\\w.-]{0,50}?(?:linear)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "linear" + ], + "minEntropy": 2.0 + }, + { + "id": "linkedin-client-id", + "description": "Found a LinkedIn Client ID, risking unauthorized access to LinkedIn integrations and professional data exposure.", + "pattern": "[\\w.-]{0,50}?(?:linked[_-]?in)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{14})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "linkedin", + "linked_in", + "linked-in" + ], + "minEntropy": 2.0 + }, + { + "id": "linkedin-client-secret", + "description": "Discovered a LinkedIn Client secret, potentially compromising LinkedIn application integrations and user data.", + "pattern": "[\\w.-]{0,50}?(?:linked[_-]?in)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "linkedin", + "linked_in", + "linked-in" + ], + "minEntropy": 2.0 + }, + { + "id": "lob-api-key", + "description": "Uncovered a Lob API Key, which could lead to unauthorized access to mailing and address verification services.", + "pattern": "[\\w.-]{0,50}?(?:lob)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}((live|test)_[a-f0-9]{35})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "test_", + "live_" + ], + "minEntropy": 0.0 + }, + { + "id": "lob-pub-api-key", + "description": "Detected a Lob Publishable API Key, posing a risk of exposing mail and print service integrations.", + "pattern": "[\\w.-]{0,50}?(?:lob)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}((test|live)_pub_[a-f0-9]{31})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "test_pub", + "live_pub", + "_pub" + ], + "minEntropy": 0.0 + }, + { + "id": "looker-client-id", + "description": "Found a Looker Client ID, risking unauthorized access to a Looker account and exposing sensitive data.", + "pattern": "[\\w.-]{0,50}?(?:looker)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{20})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "looker" + ], + "minEntropy": 0.0 + }, + { + "id": "looker-client-secret", + "description": "Found a Looker Client Secret, risking unauthorized access to a Looker account and exposing sensitive data.", + "pattern": "[\\w.-]{0,50}?(?:looker)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{24})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "looker" + ], + "minEntropy": 0.0 + }, + { + "id": "mailchimp-api-key", + "description": "Identified a Mailchimp API key, potentially compromising email marketing campaigns and subscriber data.", + "pattern": "[\\w.-]{0,50}?(?:MailchimpSDK.initialize|mailchimp)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{32}-us\\d\\d)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "mailchimp" + ], + "minEntropy": 0.0 + }, + { + "id": "mailgun-private-api-token", + "description": "Found a Mailgun private API token, risking unauthorized email service operations and data breaches.", + "pattern": "[\\w.-]{0,50}?(?:mailgun)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(key-[a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "mailgun" + ], + "minEntropy": 0.0 + }, + { + "id": "mailgun-pub-key", + "description": "Discovered a Mailgun public validation key, which could expose email verification processes and associated data.", + "pattern": "[\\w.-]{0,50}?(?:mailgun)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(pubkey-[a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "mailgun" + ], + "minEntropy": 0.0 + }, + { + "id": "mailgun-signing-key", + "description": "Uncovered a Mailgun webhook signing key, potentially compromising email automation and data integrity.", + "pattern": "[\\w.-]{0,50}?(?:mailgun)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-h0-9]{32}-[a-h0-9]{8}-[a-h0-9]{8})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "mailgun" + ], + "minEntropy": 0.0 + }, + { + "id": "mapbox-api-token", + "description": "Detected a MapBox API token, posing a risk to geospatial services and sensitive location data exposure.", + "pattern": "[\\w.-]{0,50}?(?:mapbox)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(pk\\.[a-z0-9]{60}\\.[a-z0-9]{22})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "mapbox" + ], + "minEntropy": 0.0 + }, + { + "id": "mattermost-access-token", + "description": "Identified a Mattermost Access Token, which may compromise team communication channels and data privacy.", + "pattern": "[\\w.-]{0,50}?(?:mattermost)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{26})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "mattermost" + ], + "minEntropy": 0.0 + }, + { + "id": "maxmind-license-key", + "description": "Discovered a potential MaxMind license key.", + "pattern": "\\b([A-Za-z0-9]{6}_[A-Za-z0-9]{29}_mmk)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "_mmk" + ], + "minEntropy": 4.0 + }, + { + "id": "messagebird-api-token", + "description": "Found a MessageBird API token, risking unauthorized access to communication platforms and message data.", + "pattern": "[\\w.-]{0,50}?(?:message[_-]?bird)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{25})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "messagebird", + "message-bird", + "message_bird" + ], + "minEntropy": 0.0 + }, + { + "id": "messagebird-client-id", + "description": "Discovered a MessageBird client ID, potentially compromising API integrations and sensitive communication data.", + "pattern": "[\\w.-]{0,50}?(?:message[_-]?bird)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "messagebird", + "message-bird", + "message_bird" + ], + "minEntropy": 0.0 + }, + { + "id": "microsoft-teams-webhook", + "description": "Uncovered a Microsoft Teams Webhook, which could lead to unauthorized access to team collaboration tools and data leaks.", + "pattern": "https://[a-z0-9]+\\.webhook\\.office\\.com/webhookb2/[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}@[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}/IncomingWebhook/[a-z0-9]{32}/[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "webhook.office.com", + "webhookb2", + "incomingwebhook" + ], + "minEntropy": 0.0 + }, + { + "id": "netlify-access-token", + "description": "Detected a Netlify Access Token, potentially compromising web hosting services and site management.", + "pattern": "[\\w.-]{0,50}?(?:netlify)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{40,46})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "netlify" + ], + "minEntropy": 0.0 + }, + { + "id": "new-relic-browser-api-token", + "description": "Identified a New Relic ingest browser API token, risking unauthorized access to application performance data and analytics.", + "pattern": "[\\w.-]{0,50}?(?:new-relic|newrelic|new_relic)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(NRJS-[a-f0-9]{19})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "nrjs-" + ], + "minEntropy": 0.0 + }, + { + "id": "new-relic-insert-key", + "description": "Discovered a New Relic insight insert key, compromising data injection into the platform.", + "pattern": "[\\w.-]{0,50}?(?:new-relic|newrelic|new_relic)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(NRII-[a-z0-9-]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "nrii-" + ], + "minEntropy": 0.0 + }, + { + "id": "new-relic-user-api-id", + "description": "Found a New Relic user API ID, posing a risk to application monitoring services and data integrity.", + "pattern": "[\\w.-]{0,50}?(?:new-relic|newrelic|new_relic)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "new-relic", + "newrelic", + "new_relic" + ], + "minEntropy": 0.0 + }, + { + "id": "new-relic-user-api-key", + "description": "Discovered a New Relic user API Key, which could lead to compromised application insights and performance monitoring.", + "pattern": "[\\w.-]{0,50}?(?:new-relic|newrelic|new_relic)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(NRAK-[a-z0-9]{27})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "nrak" + ], + "minEntropy": 0.0 + }, + { + "id": "notion-api-token", + "description": "Notion API token", + "pattern": "\\b(ntn_[0-9]{11}[A-Za-z0-9]{32}[A-Za-z0-9]{3})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "ntn_" + ], + "minEntropy": 4.0 + }, + { + "id": "npm-access-token", + "description": "Uncovered an npm access token, potentially compromising package management and code repository access.", + "pattern": "\\b(npm_[a-z0-9]{36})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "npm_" + ], + "minEntropy": 2.0 + }, + { + "id": "nuget-config-password", + "description": "Identified a password within a Nuget config file, potentially compromising package management access.", + "pattern": "", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "nytimes", + "new-york-times", + "newyorktimes" + ], + "minEntropy": 0.0 + }, + { + "id": "octopus-deploy-api-key", + "description": "Discovered a potential Octopus Deploy API key, risking application deployments and operational security.", + "pattern": "\\b(API-[A-Z0-9]{26})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "api-" + ], + "minEntropy": 3.0 + }, + { + "id": "openai-api-key", + "description": "Found an OpenAI API Key, posing a risk of unauthorized access to AI services and data manipulation.", + "pattern": "\\b(sk-(?:proj|svcacct|admin)-(?:[A-Za-z0-9_-]{74}|[A-Za-z0-9_-]{58})T3BlbkFJ(?:[A-Za-z0-9_-]{74}|[A-Za-z0-9_-]{58})\\b|sk-[a-zA-Z0-9]{20}T3BlbkFJ[a-zA-Z0-9]{20})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "t3blbkfj" + ], + "minEntropy": 3.0 + }, + { + "id": "openshift-user-token", + "description": "Found an OpenShift user token, potentially compromising an OpenShift/Kubernetes cluster.", + "pattern": "\\b(sha256~[\\w-]{43})(?:[^\\w-]|\\z)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sha256~" + ], + "minEntropy": 3.5 + }, + { + "id": "perplexity-api-key", + "description": "Detected a Perplexity API key, which could lead to unauthorized access to Perplexity AI services and data exposure.", + "pattern": "\\b(pplx-[a-zA-Z0-9]{48})(?:[\\x60'\"\\s;]|\\\\[nr]|$|\\b)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "pplx-" + ], + "minEntropy": 4.0 + }, + { + "id": "plaid-api-token", + "description": "Discovered a Plaid API Token, potentially compromising financial data aggregation and banking services.", + "pattern": "[\\w.-]{0,50}?(?:plaid)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(access-(?:sandbox|development|production)-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "plaid" + ], + "minEntropy": 0.0 + }, + { + "id": "plaid-client-id", + "description": "Uncovered a Plaid Client ID, which could lead to unauthorized financial service integrations and data breaches.", + "pattern": "[\\w.-]{0,50}?(?:plaid)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{24})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "plaid" + ], + "minEntropy": 3.5 + }, + { + "id": "plaid-secret-key", + "description": "Detected a Plaid Secret key, risking unauthorized access to financial accounts and sensitive transaction data.", + "pattern": "[\\w.-]{0,50}?(?:plaid)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{30})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "plaid" + ], + "minEntropy": 3.5 + }, + { + "id": "planetscale-api-token", + "description": "Identified a PlanetScale API token, potentially compromising database management and operations.", + "pattern": "\\b(pscale_tkn_[\\w=\\.-]{32,64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "pscale_tkn_" + ], + "minEntropy": 3.0 + }, + { + "id": "planetscale-oauth-token", + "description": "Found a PlanetScale OAuth token, posing a risk to database access control and sensitive data integrity.", + "pattern": "\\b(pscale_oauth_[\\w=\\.-]{32,64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "pscale_oauth_" + ], + "minEntropy": 3.0 + }, + { + "id": "planetscale-password", + "description": "Discovered a PlanetScale password, which could lead to unauthorized database operations and data breaches.", + "pattern": "\\b(pscale_pw_[\\w=\\.-]{32,64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "pscale_pw_" + ], + "minEntropy": 3.0 + }, + { + "id": "postman-api-token", + "description": "Uncovered a Postman API token, potentially compromising API testing and development workflows.", + "pattern": "\\b(PMAK-[a-f0-9]{24}\\-[a-f0-9]{34})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "pmak-" + ], + "minEntropy": 3.0 + }, + { + "id": "prefect-api-token", + "description": "Detected a Prefect API token, risking unauthorized access to workflow management and automation services.", + "pattern": "\\b(pnu_[a-zA-Z0-9]{36})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "pnu_" + ], + "minEntropy": 2.0 + }, + { + "id": "private-key", + "description": "Identified a Private Key, which may compromise cryptographic security and sensitive data encryption.", + "pattern": "-----BEGIN[ A-Z0-9_-]{0,100}PRIVATE KEY(?: BLOCK)?-----[\\s\\S-]{64,}?KEY(?: BLOCK)?-----", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "-----begin" + ], + "minEntropy": 0.0 + }, + { + "id": "privateai-api-token", + "description": "Identified a PrivateAI Token, posing a risk of unauthorized access to AI services and data manipulation.", + "pattern": "[\\w.-]{0,50}?(?:[\\w.-]{0,50}?(?:private[_-]?ai)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3})(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "privateai", + "private_ai", + "private-ai" + ], + "minEntropy": 3.0 + }, + { + "id": "pulumi-api-token", + "description": "Found a Pulumi API token, posing a risk to infrastructure as code services and cloud resource management.", + "pattern": "\\b(pul-[a-f0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "pul-" + ], + "minEntropy": 2.0 + }, + { + "id": "pypi-upload-token", + "description": "Discovered a PyPI upload token, potentially compromising Python package distribution and repository integrity.", + "pattern": "pypi-AgEIcHlwaS5vcmc[\\w-]{50,1000}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "pypi-ageichlwas5vcmc" + ], + "minEntropy": 3.0 + }, + { + "id": "rapidapi-access-token", + "description": "Uncovered a RapidAPI Access Token, which could lead to unauthorized access to various APIs and data services.", + "pattern": "[\\w.-]{0,50}?(?:rapidapi)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9_-]{50})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "rapidapi" + ], + "minEntropy": 0.0 + }, + { + "id": "readme-api-token", + "description": "Detected a Readme API token, risking unauthorized documentation management and content exposure.", + "pattern": "\\b(rdme_[a-z0-9]{70})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "rdme_" + ], + "minEntropy": 2.0 + }, + { + "id": "rubygems-api-token", + "description": "Identified a Rubygem API token, potentially compromising Ruby library distribution and package management.", + "pattern": "\\b(rubygems_[a-f0-9]{48})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "rubygems_" + ], + "minEntropy": 2.0 + }, + { + "id": "scalingo-api-token", + "description": "Found a Scalingo API token, posing a risk to cloud platform services and application deployment security.", + "pattern": "\\b(tk-us-[\\w-]{48})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "tk-us-" + ], + "minEntropy": 2.0 + }, + { + "id": "sendbird-access-id", + "description": "Discovered a Sendbird Access ID, which could compromise chat and messaging platform integrations.", + "pattern": "[\\w.-]{0,50}?(?:sendbird)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "sendbird" + ], + "minEntropy": 0.0 + }, + { + "id": "sendbird-access-token", + "description": "Uncovered a Sendbird Access Token, potentially risking unauthorized access to communication services and user data.", + "pattern": "[\\w.-]{0,50}?(?:sendbird)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "sendbird" + ], + "minEntropy": 0.0 + }, + { + "id": "sendgrid-api-token", + "description": "Detected a SendGrid API token, posing a risk of unauthorized email service operations and data exposure.", + "pattern": "\\b(SG\\.[a-z0-9=_\\-\\.]{66})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "sg." + ], + "minEntropy": 2.0 + }, + { + "id": "sendinblue-api-token", + "description": "Identified a Sendinblue API token, which may compromise email marketing services and subscriber data privacy.", + "pattern": "\\b(xkeysib-[a-f0-9]{64}\\-[a-z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "xkeysib-" + ], + "minEntropy": 2.0 + }, + { + "id": "sentry-access-token", + "description": "Found a Sentry.io Access Token (old format), risking unauthorized access to error tracking services and sensitive application data.", + "pattern": "[\\w.-]{0,50}?(?:sentry)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "sentry" + ], + "minEntropy": 3.0 + }, + { + "id": "sentry-org-token", + "description": "Found a Sentry.io Organization Token, risking unauthorized access to error tracking services and sensitive application data.", + "pattern": "\\bsntrys_eyJpYXQiO[a-zA-Z0-9+/]{10,200}(?:LCJyZWdpb25fdXJs|InJlZ2lvbl91cmwi|cmVnaW9uX3VybCI6)[a-zA-Z0-9+/]{10,200}={0,2}_[a-zA-Z0-9+/]{43}(?:[^a-zA-Z0-9+/]|\\z)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sntrys_eyjpyxqio" + ], + "minEntropy": 4.5 + }, + { + "id": "sentry-user-token", + "description": "Found a Sentry.io User Token, risking unauthorized access to error tracking services and sensitive application data.", + "pattern": "\\b(sntryu_[a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sntryu_" + ], + "minEntropy": 3.5 + }, + { + "id": "settlemint-application-access-token", + "description": "Found a Settlemint Application Access Token.", + "pattern": "\\b(sm_aat_[a-zA-Z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sm_aat" + ], + "minEntropy": 3.0 + }, + { + "id": "settlemint-personal-access-token", + "description": "Found a Settlemint Personal Access Token.", + "pattern": "\\b(sm_pat_[a-zA-Z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sm_pat" + ], + "minEntropy": 3.0 + }, + { + "id": "settlemint-service-access-token", + "description": "Found a Settlemint Service Access Token.", + "pattern": "\\b(sm_sat_[a-zA-Z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sm_sat" + ], + "minEntropy": 3.0 + }, + { + "id": "shippo-api-token", + "description": "Discovered a Shippo API token, potentially compromising shipping services and customer order data.", + "pattern": "\\b(shippo_(?:live|test)_[a-fA-F0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "shippo_" + ], + "minEntropy": 2.0 + }, + { + "id": "shopify-access-token", + "description": "Uncovered a Shopify access token, which could lead to unauthorized e-commerce platform access and data breaches.", + "pattern": "shpat_[a-fA-F0-9]{32}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "shpat_" + ], + "minEntropy": 2.0 + }, + { + "id": "shopify-custom-access-token", + "description": "Detected a Shopify custom access token, potentially compromising custom app integrations and e-commerce data security.", + "pattern": "shpca_[a-fA-F0-9]{32}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "shpca_" + ], + "minEntropy": 2.0 + }, + { + "id": "shopify-private-app-access-token", + "description": "Identified a Shopify private app access token, risking unauthorized access to private app data and store operations.", + "pattern": "shppa_[a-fA-F0-9]{32}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "shppa_" + ], + "minEntropy": 2.0 + }, + { + "id": "shopify-shared-secret", + "description": "Found a Shopify shared secret, posing a risk to application authentication and e-commerce platform security.", + "pattern": "shpss_[a-fA-F0-9]{32}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "shpss_" + ], + "minEntropy": 2.0 + }, + { + "id": "sidekiq-secret", + "description": "Discovered a Sidekiq Secret, which could lead to compromised background job processing and application data breaches.", + "pattern": "[\\w.-]{0,50}?(?:BUNDLE_ENTERPRISE__CONTRIBSYS__COM|BUNDLE_GEMS__CONTRIBSYS__COM)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{8}:[a-f0-9]{8})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "bundle_enterprise__contribsys__com", + "bundle_gems__contribsys__com" + ], + "minEntropy": 0.0 + }, + { + "id": "sidekiq-sensitive-url", + "description": "Uncovered a Sidekiq Sensitive URL, potentially exposing internal job queues and sensitive operation details.", + "pattern": "\\bhttps?://([a-f0-9]{8}:[a-f0-9]{8})@(?:gems.contribsys.com|enterprise.contribsys.com)(?:[\\/|\\#|\\?|:]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "gems.contribsys.com", + "enterprise.contribsys.com" + ], + "minEntropy": 0.0 + }, + { + "id": "slack-app-token", + "description": "Detected a Slack App-level token, risking unauthorized access to Slack applications and workspace data.", + "pattern": "xapp-\\d-[A-Z0-9]+-\\d+-[a-z0-9]+", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "xapp" + ], + "minEntropy": 2.0 + }, + { + "id": "slack-bot-token", + "description": "Identified a Slack Bot token, which may compromise bot integrations and communication channel security.", + "pattern": "xoxb-[0-9]{10,13}-[0-9]{10,13}[a-zA-Z0-9-]*", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "xoxb" + ], + "minEntropy": 3.0 + }, + { + "id": "slack-config-access-token", + "description": "Found a Slack Configuration access token, posing a risk to workspace configuration and sensitive data access.", + "pattern": "xoxe.xox[bp]-\\d-[A-Z0-9]{163,166}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "xoxe.xoxb-", + "xoxe.xoxp-" + ], + "minEntropy": 2.0 + }, + { + "id": "slack-config-refresh-token", + "description": "Discovered a Slack Configuration refresh token, potentially allowing prolonged unauthorized access to configuration settings.", + "pattern": "xoxe-\\d-[A-Z0-9]{146}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "xoxe-" + ], + "minEntropy": 2.0 + }, + { + "id": "slack-legacy-bot-token", + "description": "Uncovered a Slack Legacy bot token, which could lead to compromised legacy bot operations and data exposure.", + "pattern": "xoxb-[0-9]{8,14}-[a-zA-Z0-9]{18,26}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "xoxb" + ], + "minEntropy": 2.0 + }, + { + "id": "slack-legacy-token", + "description": "Detected a Slack Legacy token, risking unauthorized access to older Slack integrations and user data.", + "pattern": "xox[os]-\\d+-\\d+-\\d+-[a-fA-F\\d]+", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "xoxo", + "xoxs" + ], + "minEntropy": 2.0 + }, + { + "id": "slack-legacy-workspace-token", + "description": "Identified a Slack Legacy Workspace token, potentially compromising access to workspace data and legacy features.", + "pattern": "xox[ar]-(?:\\d-)?[0-9a-zA-Z]{8,48}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "xoxa", + "xoxr" + ], + "minEntropy": 2.0 + }, + { + "id": "slack-user-token", + "description": "Found a Slack User token, posing a risk of unauthorized user impersonation and data access within Slack workspaces.", + "pattern": "xox[pe](?:-[0-9]{10,13}){3}-[a-zA-Z0-9-]{28,34}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "xoxp-", + "xoxe-" + ], + "minEntropy": 2.0 + }, + { + "id": "slack-webhook-url", + "description": "Discovered a Slack Webhook, which could lead to unauthorized message posting and data leakage in Slack channels.", + "pattern": "(?:https?://)?hooks.slack.com/(?:services|workflows|triggers)/[A-Za-z0-9+/]{43,56}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "hooks.slack.com" + ], + "minEntropy": 0.0 + }, + { + "id": "snyk-api-token", + "description": "Uncovered a Snyk API token, potentially compromising software vulnerability scanning and code security.", + "pattern": "[\\w.-]{0,50}?(?:snyk[_.-]?(?:(?:api|oauth)[_.-]?)?(?:key|token))(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "snyk" + ], + "minEntropy": 0.0 + }, + { + "id": "sonar-api-token", + "description": "Uncovered a Sonar API token, potentially compromising software vulnerability scanning and code security.", + "pattern": "[\\w.-]{0,50}?(?:sonar[_.-]?(login|token))(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}((?:squ_|sqp_|sqa_)?[a-z0-9=_\\-]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "sonar" + ], + "minEntropy": 0.0 + }, + { + "id": "sourcegraph-access-token", + "description": "Sourcegraph is a code search and navigation engine.", + "pattern": "\\b(\\b(sgp_(?:[a-fA-F0-9]{16}|local)_[a-fA-F0-9]{40}|sgp_[a-fA-F0-9]{40}|[a-fA-F0-9]{40})\\b)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "sgp_", + "sourcegraph" + ], + "minEntropy": 3.0 + }, + { + "id": "square-access-token", + "description": "Detected a Square Access Token, risking unauthorized payment processing and financial transaction exposure.", + "pattern": "\\b((?:EAAA|sq0atp-)[\\w-]{22,60})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sq0atp-", + "eaaa" + ], + "minEntropy": 2.0 + }, + { + "id": "squarespace-access-token", + "description": "Identified a Squarespace Access Token, which may compromise website management and content control on Squarespace.", + "pattern": "[\\w.-]{0,50}?(?:squarespace)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "squarespace" + ], + "minEntropy": 0.0 + }, + { + "id": "stripe-access-token", + "description": "Found a Stripe Access Token, posing a risk to payment processing services and sensitive financial data.", + "pattern": "\\b((?:sk|rk)_(?:test|live|prod)_[a-zA-Z0-9]{10,99})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sk_test", + "sk_live", + "sk_prod", + "rk_test", + "rk_live", + "rk_prod" + ], + "minEntropy": 2.0 + }, + { + "id": "travisci-access-token", + "description": "Identified a Travis CI Access Token, potentially compromising continuous integration services and codebase security.", + "pattern": "[\\w.-]{0,50}?(?:travis)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{22})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "travis" + ], + "minEntropy": 0.0 + }, + { + "id": "twilio-api-key", + "description": "Found a Twilio API Key, posing a risk to communication services and sensitive customer interaction data.", + "pattern": "SK[0-9a-fA-F]{32}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sk" + ], + "minEntropy": 3.0 + }, + { + "id": "twitch-api-token", + "description": "Discovered a Twitch API token, which could compromise streaming services and account integrations.", + "pattern": "[\\w.-]{0,50}?(?:twitch)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{30})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "twitch" + ], + "minEntropy": 0.0 + }, + { + "id": "twitter-access-secret", + "description": "Uncovered a Twitter Access Secret, potentially risking unauthorized Twitter integrations and data breaches.", + "pattern": "[\\w.-]{0,50}?(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{45})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "twitter" + ], + "minEntropy": 0.0 + }, + { + "id": "twitter-access-token", + "description": "Detected a Twitter Access Token, posing a risk of unauthorized account operations and social media data exposure.", + "pattern": "[\\w.-]{0,50}?(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9]{15,25}-[a-zA-Z0-9]{20,40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "twitter" + ], + "minEntropy": 0.0 + }, + { + "id": "twitter-api-key", + "description": "Identified a Twitter API Key, which may compromise Twitter application integrations and user data security.", + "pattern": "[\\w.-]{0,50}?(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{25})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "twitter" + ], + "minEntropy": 0.0 + }, + { + "id": "twitter-api-secret", + "description": "Found a Twitter API Secret, risking the security of Twitter app integrations and sensitive data access.", + "pattern": "[\\w.-]{0,50}?(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{50})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "twitter" + ], + "minEntropy": 0.0 + }, + { + "id": "twitter-bearer-token", + "description": "Discovered a Twitter Bearer Token, potentially compromising API access and data retrieval from Twitter.", + "pattern": "[\\w.-]{0,50}?(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(A{22}[a-zA-Z0-9%]{80,100})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "twitter" + ], + "minEntropy": 0.0 + }, + { + "id": "typeform-api-token", + "description": "Uncovered a Typeform API token, which could lead to unauthorized survey management and data collection.", + "pattern": "[\\w.-]{0,50}?(?:typeform)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(tfp_[a-z0-9\\-_\\.=]{59})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "tfp_" + ], + "minEntropy": 0.0 + }, + { + "id": "vault-batch-token", + "description": "Detected a Vault Batch Token, risking unauthorized access to secret management services and sensitive data.", + "pattern": "\\b(hvb\\.[\\w-]{138,300})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "hvb." + ], + "minEntropy": 4.0 + }, + { + "id": "vault-service-token", + "description": "Identified a Vault Service Token, potentially compromising infrastructure security and access to sensitive credentials.", + "pattern": "\\b((?:hvs\\.[\\w-]{90,120}|s\\.(?:[a-z0-9]{24})))(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "hvs.", + "s." + ], + "minEntropy": 3.5 + }, + { + "id": "yandex-access-token", + "description": "Found a Yandex Access Token, posing a risk to Yandex service integrations and user data privacy.", + "pattern": "[\\w.-]{0,50}?(?:yandex)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(t1\\.[A-Z0-9a-z_-]+[=]{0,2}\\.[A-Z0-9a-z_-]{86}[=]{0,2})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "yandex" + ], + "minEntropy": 0.0 + }, + { + "id": "yandex-api-key", + "description": "Discovered a Yandex API Key, which could lead to unauthorized access to Yandex services and data manipulation.", + "pattern": "[\\w.-]{0,50}?(?:yandex)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(AQVN[A-Za-z0-9_\\-]{35,38})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "yandex" + ], + "minEntropy": 0.0 + }, + { + "id": "yandex-aws-access-token", + "description": "Uncovered a Yandex AWS Access Token, potentially compromising cloud resource access and data security on Yandex Cloud.", + "pattern": "[\\w.-]{0,50}?(?:yandex)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(YC[a-zA-Z0-9_\\-]{38})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "yandex" + ], + "minEntropy": 0.0 + }, + { + "id": "zendesk-secret-key", + "description": "Detected a Zendesk Secret Key, risking unauthorized access to customer support services and sensitive ticketing data.", + "pattern": "[\\w.-]{0,50}?(?:zendesk)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "zendesk" + ], + "minEntropy": 0.0 + } +] +'''; diff --git a/lib/src/reporters/console_reporter.dart b/lib/src/reporters/console_reporter.dart new file mode 100644 index 0000000..79fe5aa --- /dev/null +++ b/lib/src/reporters/console_reporter.dart @@ -0,0 +1,83 @@ +import 'dart:io'; + +import 'package:dart_shield/src/domain/analysis_issue.dart'; +import 'package:dart_shield/src/domain/analyzer_result.dart'; +import 'package:dart_shield/src/domain/issue_context.dart'; +import 'package:dart_shield/src/reporters/reporter.dart'; + +class ConsoleReporter implements Reporter { + @override + String get id => 'console'; + + @override + Future report(List results) async { + final buffer = StringBuffer() + ..writeln('\n๐Ÿ›ก๏ธ SHIELD ANALYSIS REPORT') + ..writeln('=================================================='); + + for (final result in results) { + _writeResult(buffer, result); + } + + final totalIssues = results.whereType().fold( + 0, + (sum, r) => sum + r.issues.length, + ); + + buffer + ..writeln('==================================================') + ..writeln('Total Issues Found: $totalIssues\n'); + + stdout.write(buffer.toString()); + } + + void _writeResult(StringBuffer buffer, AnalyzerResult result) { + if (result is AnalysisFailure) { + buffer + ..writeln( + 'โŒ [${result.analyzerId}] FAILED ' + '(${result.duration.inMilliseconds}ms)', + ) + ..writeln(' Error: ${result.errorMessage}'); + if (result.stackTrace != null) { + buffer.writeln(' Trace: ${result.stackTrace}'); + } + buffer.writeln(); + return; + } + + if (result is AnalysisSuccess) { + final icon = result.issues.isEmpty ? 'โœ…' : 'โš ๏ธ '; + buffer.writeln( + '$icon [${result.analyzerId}] found ${result.issues.length} issues ' + '(${result.duration.inMilliseconds}ms)', + ); + + for (final issue in result.issues) { + _writeIssue(buffer, issue); + } + + if (result.issues.isNotEmpty) buffer.writeln(); + } + } + + void _writeIssue(StringBuffer buffer, AnalysisIssue issue) { + const indent = ' '; + + final icon = switch (issue.severity) { + Severity.high => '๐Ÿ”ด', + Severity.medium => '๐ŸŸ ', + Severity.low => '๐ŸŸก', + Severity.info => '๐Ÿ”ต', + }; + + buffer.writeln('$indent$icon ${issue.message} [${issue.ruleId}]'); + + final location = switch (issue.context) { + FileContext(filePath: final p, line: final l, column: final c) => + '$p:$l:$c', + }; + + buffer.writeln('$indent ๐Ÿ“ $location'); + } +} diff --git a/lib/src/reporters/json_reporter.dart b/lib/src/reporters/json_reporter.dart new file mode 100644 index 0000000..1e8f452 --- /dev/null +++ b/lib/src/reporters/json_reporter.dart @@ -0,0 +1,45 @@ +import 'dart:convert'; +import 'dart:io'; + +import 'package:dart_shield/src/domain/analyzer_result.dart'; +import 'package:dart_shield/src/reporters/reporter.dart'; +import 'package:mason_logger/mason_logger.dart'; + +class JsonReporter implements Reporter { + JsonReporter({this.outputPath = 'shield_report.json', Logger? logger}) + : _logger = logger ?? Logger(); + + final String outputPath; + final Logger _logger; + + @override + String get id => 'json'; + + @override + Future report(List results) async { + final data = results.map((result) { + return switch (result) { + final AnalysisSuccess s => { + 'type': 'success', + 'analyzer': s.analyzerId, + 'duration_ms': s.duration.inMilliseconds, + 'issues': s.issues.map((i) => i.toJson()).toList(), + }, + final AnalysisFailure f => { + 'type': 'failure', + 'analyzer': f.analyzerId, + 'duration_ms': f.duration.inMilliseconds, + 'error': f.errorMessage, + }, + }; + }).toList(); + + final jsonStr = const JsonEncoder.withIndent(' ').convert(data); + + final file = File(outputPath); + await file.writeAsString(jsonStr); + + // Small feedback so the user knows the file was created + _logger.info('๐Ÿ’พ JSON report generated at: ${file.absolute.path}'); + } +} diff --git a/lib/src/reporters/reporter.dart b/lib/src/reporters/reporter.dart new file mode 100644 index 0000000..249a3b0 --- /dev/null +++ b/lib/src/reporters/reporter.dart @@ -0,0 +1,7 @@ +import 'package:dart_shield/src/domain/analyzer_result.dart'; + +abstract interface class Reporter { + String get id; + + Future report(List results); +} diff --git a/lib/src/security_analyzer/configuration/configuration.dart b/lib/src/security_analyzer/configuration/configuration.dart deleted file mode 100644 index 242e33b..0000000 --- a/lib/src/security_analyzer/configuration/configuration.dart +++ /dev/null @@ -1 +0,0 @@ -export 'shield_config.dart'; diff --git a/lib/src/security_analyzer/configuration/glob_converter.dart b/lib/src/security_analyzer/configuration/glob_converter.dart deleted file mode 100644 index 15f4386..0000000 --- a/lib/src/security_analyzer/configuration/glob_converter.dart +++ /dev/null @@ -1,16 +0,0 @@ -import 'package:glob/glob.dart'; -import 'package:json_annotation/json_annotation.dart'; - -class GlobConverter implements JsonConverter { - const GlobConverter(); - - @override - Glob fromJson(String json) { - return Glob(json); - } - - @override - String toJson(Glob object) { - return object.pattern; - } -} diff --git a/lib/src/security_analyzer/configuration/lint_rule_converter.dart b/lib/src/security_analyzer/configuration/lint_rule_converter.dart deleted file mode 100644 index 50f4c7f..0000000 --- a/lib/src/security_analyzer/configuration/lint_rule_converter.dart +++ /dev/null @@ -1,28 +0,0 @@ -import 'package:dart_shield/src/security_analyzer/configuration/rule_config.dart'; -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule/rule.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule_registry.dart'; -import 'package:glob/glob.dart'; -import 'package:json_annotation/json_annotation.dart'; - -class LintRuleConverter implements JsonConverter { - const LintRuleConverter(); - - @override - LintRule fromJson(dynamic value) { - final ruleConfig = RuleConfig.fromDynamic(value); - final excludePatterns = ruleConfig.exclude.map(Glob.new).toList(); - - final rule = RuleRegistry.createRule( - id: RuleId.fromYamlName(ruleConfig.name), - excludes: excludePatterns, - ); - - return rule; - } - - @override - String toJson(LintRule rule) { - return rule.id.name; - } -} diff --git a/lib/src/security_analyzer/configuration/rule_config.dart b/lib/src/security_analyzer/configuration/rule_config.dart deleted file mode 100644 index 2c3f076..0000000 --- a/lib/src/security_analyzer/configuration/rule_config.dart +++ /dev/null @@ -1,52 +0,0 @@ -/// Configuration for a single rule that supports both string and -/// object formats. -class RuleConfig { - const RuleConfig({ - required this.name, - this.exclude = const [], - }); - - /// Creates a RuleConfig from a dynamic value that can be either a String - /// or Map. - factory RuleConfig.fromDynamic(dynamic value) { - if (value is String) { - return RuleConfig(name: value); - } - - if (value is Map) { - final entries = value.entries.toList(); - if (entries.length != 1) { - throw ArgumentError('Rule config map must have exactly one entry'); - } - - final entry = entries.first; - final name = entry.key.toString(); - final configValue = entry.value; - - final exclude = []; - if (configValue is Map) { - final excludeList = configValue['exclude']; - if (excludeList is List) { - exclude.addAll(excludeList.map((e) => e.toString())); - } - } - - return RuleConfig(name: name, exclude: exclude); - } else { - throw ArgumentError( - 'Rule config must be a String or Map, got ${value.runtimeType}', - ); - } - } - - /// The name of the rule (e.g., 'avoid_hardcoded_secrets'). - final String name; - - /// List of file patterns to exclude for this rule. - final List exclude; - - Map toJson() => { - 'name': name, - 'exclude': exclude, - }; -} diff --git a/lib/src/security_analyzer/configuration/shield_config.dart b/lib/src/security_analyzer/configuration/shield_config.dart deleted file mode 100644 index cfe3db7..0000000 --- a/lib/src/security_analyzer/configuration/shield_config.dart +++ /dev/null @@ -1,104 +0,0 @@ -import 'dart:io'; - -import 'package:dart_shield/src/security_analyzer/configuration/glob_converter.dart'; -import 'package:dart_shield/src/security_analyzer/configuration/lint_rule_converter.dart'; -import 'package:dart_shield/src/security_analyzer/exceptions/exceptions.dart'; -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule/lint_rule.dart'; -import 'package:dart_shield/src/utils/utils.dart'; -import 'package:json_annotation/json_annotation.dart'; -import 'package:yaml/yaml.dart'; - -part 'shield_config.g.dart'; - -@JsonSerializable( - fieldRename: FieldRename.snake, - converters: [LintRuleConverter(), GlobConverter()], - createToJson: false, -) -class ShieldConfig { - ShieldConfig({ - this.rules = const [], - this.experimentalRules = const [], - this.enableExperimental = false, - this.exclude = const [], - }) { - _verifyValidity(); - } - - factory ShieldConfig.fromYaml(Map yaml) { - final config = yaml['shield'] as Map; - return _$ShieldConfigFromJson(config); - } - - factory ShieldConfig.fromFile(String path) { - try { - final content = File(path).readAsStringSync(); - final dartMap = yamlToDartMap(loadYaml(content)) as Map; - return ShieldConfig.fromYaml(dartMap); - } on FileSystemException catch (e) { - throw InvalidConfigurationException( - 'Could not read config file at $path: ${e.message}', - ); - } on YamlException catch (e) { - throw InvalidConfigurationException( - 'Invalid YAML in config file at $path: ${e.message}', - ); - } catch (e) { - throw InvalidConfigurationException( - 'Invalid configuration structure in $path: $e', - ); - } - } - - // Verifies the validity of the configuration - void _verifyValidity() { - // Ensure no experimental rules are in the main rules list - final experimentalInMainRules = rules - .where((rule) => rule.status == RuleStatus.experimental) - .toList(); - if (experimentalInMainRules.isNotEmpty) { - final ruleNames = experimentalInMainRules - .map((rule) => rule.id.name) - .join(', '); - throw InvalidConfigurationException( - 'Found experimental rule(s) in the "rules" list: $ruleNames. ' - 'Move these to "experimental_rules" list.', - ); - } - - // Ensure experimental rules are only allowed if the experimental flag is - // enabled - if (!enableExperimental && experimentalRules.isNotEmpty) { - final ruleNames = experimentalRules - .map((rule) => rule.id.name) - .join(', '); - throw InvalidConfigurationException( - 'Found experimental rule(s) in "experimental_rules" list: $ruleNames, ' - 'but "enable_experimental" is set to false. ' - 'Set "enable_experimental" to true to use these rules.', - ); - } - - // Ensure only experimental rules are in the experimental rules list - final nonExperimentalInExperimentalRules = experimentalRules - .where((rule) => rule.status != RuleStatus.experimental) - .toList(); - if (nonExperimentalInExperimentalRules.isNotEmpty) { - final ruleNames = nonExperimentalInExperimentalRules - .map((rule) => rule.id.name) - .join(', '); - throw InvalidConfigurationException( - 'Found non-experimental rule(s) in "experimental_rules" list: ' - '$ruleNames. Move these to the "rules" list.', - ); - } - } - - List exclude; - List rules; - bool enableExperimental; - List experimentalRules; - - List get allRules => [...rules, ...experimentalRules]; -} diff --git a/lib/src/security_analyzer/configuration/shield_config.g.dart b/lib/src/security_analyzer/configuration/shield_config.g.dart deleted file mode 100644 index 33edab2..0000000 --- a/lib/src/security_analyzer/configuration/shield_config.g.dart +++ /dev/null @@ -1,24 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'shield_config.dart'; - -// ************************************************************************** -// JsonSerializableGenerator -// ************************************************************************** - -ShieldConfig _$ShieldConfigFromJson(Map json) => ShieldConfig( - rules: - (json['rules'] as List?) - ?.map(const LintRuleConverter().fromJson) - .toList() ?? - const [], - experimentalRules: - (json['experimental_rules'] as List?) - ?.map(const LintRuleConverter().fromJson) - .toList() ?? - const [], - enableExperimental: json['enable_experimental'] as bool? ?? false, - exclude: - (json['exclude'] as List?)?.map((e) => e as String).toList() ?? - const [], -); diff --git a/lib/src/security_analyzer/exceptions/exceptions.dart b/lib/src/security_analyzer/exceptions/exceptions.dart deleted file mode 100644 index 0fbb1fc..0000000 --- a/lib/src/security_analyzer/exceptions/exceptions.dart +++ /dev/null @@ -1 +0,0 @@ -export 'invalid_configuration_exception.dart'; diff --git a/lib/src/security_analyzer/exceptions/invalid_configuration_exception.dart b/lib/src/security_analyzer/exceptions/invalid_configuration_exception.dart deleted file mode 100644 index d3d995c..0000000 --- a/lib/src/security_analyzer/exceptions/invalid_configuration_exception.dart +++ /dev/null @@ -1,5 +0,0 @@ -class InvalidConfigurationException implements Exception { - const InvalidConfigurationException(this.message); - - final String message; -} diff --git a/lib/src/security_analyzer/extensions.dart b/lib/src/security_analyzer/extensions.dart deleted file mode 100644 index ae78cb0..0000000 --- a/lib/src/security_analyzer/extensions.dart +++ /dev/null @@ -1,71 +0,0 @@ -import 'dart:io'; - -import 'package:analyzer/dart/analysis/results.dart'; -import 'package:analyzer/dart/analysis/session.dart'; -import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/ast/syntactic_entity.dart'; -import 'package:glob/glob.dart'; -import 'package:glob/list_local_fs.dart'; -import 'package:path/path.dart'; -import 'package:source_span/source_span.dart'; - -extension GlobX on Glob { - Iterable normalizePaths(String path) => listSync( - root: path, - followLinks: false, - ).whereType().map((file) => normalize(file.path)); -} - -extension AnalysisSessionX on AnalysisSession { - Future tryGetResolvedUnit(String path) async { - final result = await getResolvedUnit(path); - if (result is ResolvedUnitResult) { - return result; - } - - return null; - } -} - -extension SourceSpanX on SourceSpan { - static SourceSpan fromNode({ - required SyntacticEntity node, - required ResolvedUnitResult source, - SyntacticEntity? endNode, - bool withCommentOrMetadata = false, - }) { - final offset = !withCommentOrMetadata && node is AnnotatedNode - ? node.firstTokenAfterCommentAndMetadata.offset - : node.offset; - final end = endNode?.end ?? node.end; - final sourceUrl = Uri.file(source.path); - - final offsetLocation = source.lineInfo.getLocation(offset); - final endLocation = source.lineInfo.getLocation(end); - - return SourceSpan( - SourceLocation( - offset, - sourceUrl: sourceUrl, - line: offsetLocation.lineNumber, - column: offsetLocation.columnNumber, - ), - SourceLocation( - end, - sourceUrl: sourceUrl, - line: endLocation.lineNumber, - column: endLocation.columnNumber, - ), - source.content.substring(offset, end), - ); - } - - Map toJson() => { - 'startLine': start.line, - 'startColumn': start.column, - 'endLine': end.line, - 'endColumn': end.column, - }; - - String get string => 'Line ${start.line}, Column ${start.column}'; -} diff --git a/lib/src/security_analyzer/report/analysis_report/file_report.dart b/lib/src/security_analyzer/report/analysis_report/file_report.dart deleted file mode 100644 index b8ae301..0000000 --- a/lib/src/security_analyzer/report/analysis_report/file_report.dart +++ /dev/null @@ -1,50 +0,0 @@ -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule/rule.dart'; - -class FileReport { - FileReport({ - required this.relativePath, - required this.criticals, - required this.warnings, - required this.infos, - }); - - factory FileReport.fromIssues(String relativePath, List issues) { - final criticals = issues - .where((issue) => issue.severity == Severity.critical) - .toList(); - final warnings = issues - .where((issue) => issue.severity == Severity.warning) - .toList(); - final infos = issues - .where((issue) => issue.severity == Severity.info) - .toList(); - - return FileReport( - relativePath: relativePath, - criticals: criticals, - warnings: warnings, - infos: infos, - ); - } - - final String relativePath; - final List criticals; - final List warnings; - final List infos; - - int get criticalCount => criticals.length; - - int get warningCount => warnings.length; - - int get infoCount => infos.length; - - bool get hasIssues => criticalCount > 0 || warningCount > 0 || infoCount > 0; - - Map toJson() => { - 'relativePath': relativePath, - 'criticals': criticals.map((issue) => issue.toJson()).toList(), - 'warnings': warnings.map((issue) => issue.toJson()).toList(), - 'infos': infos.map((issue) => issue.toJson()).toList(), - }; -} diff --git a/lib/src/security_analyzer/report/analysis_report/project_report.dart b/lib/src/security_analyzer/report/analysis_report/project_report.dart deleted file mode 100644 index 5e2322f..0000000 --- a/lib/src/security_analyzer/report/analysis_report/project_report.dart +++ /dev/null @@ -1,35 +0,0 @@ -import 'package:collection/collection.dart'; -import 'package:dart_shield/src/security_analyzer/report/report.dart'; - -class ProjectReport { - ProjectReport({ - required this.path, - required this.fileReports, - this.skippedFiles = const [], - }); - - factory ProjectReport.empty(String path) { - return ProjectReport( - path: path, - fileReports: [], - ); - } - - final String path; - final List fileReports; - List skippedFiles; - - int get criticalCount => - fileReports.map((report) => report.criticalCount).sum; - int get warningCount => fileReports.map((report) => report.warningCount).sum; - int get infoCount => fileReports.map((report) => report.infoCount).sum; - - Map toJson() => { - 'path': path, - 'reports': fileReports.map((report) => report.toJson()).toList(), - }; - - void addLintReports(List reports) { - fileReports.addAll(reports); - } -} diff --git a/lib/src/security_analyzer/report/report.dart b/lib/src/security_analyzer/report/report.dart deleted file mode 100644 index 0a927a2..0000000 --- a/lib/src/security_analyzer/report/report.dart +++ /dev/null @@ -1,3 +0,0 @@ -export 'analysis_report/file_report.dart'; -export 'analysis_report/project_report.dart'; -export 'reporters/reporters.dart'; diff --git a/lib/src/security_analyzer/report/reporters/console_report.dart b/lib/src/security_analyzer/report/reporters/console_report.dart deleted file mode 100644 index ee1d8bc..0000000 --- a/lib/src/security_analyzer/report/reporters/console_report.dart +++ /dev/null @@ -1,84 +0,0 @@ -import 'package:dart_shield/src/security_analyzer/extensions.dart'; -import 'package:dart_shield/src/security_analyzer/report/report.dart'; -import 'package:dart_shield/src/security_analyzer/report/reporters/issue_reporter.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule/lint_issue.dart'; - -class ConsoleReport extends IssueReporter { - final StringBuffer _buffer = StringBuffer(); - - // Emoji symbols for report readability - static const String criticalSymbol = 'โŒ'; - static const String warningSymbol = 'โš ๏ธ'; - static const String infoSymbol = 'โ„น๏ธ'; - static const String noIssuesSymbol = '๐ŸŽ‰'; - static const String analyzedFilePrefix = '>>> Analyzed File:'; - - @override - String report(ProjectReport report) { - _buffer.clear(); - _appendReportHeader(report); - _appendFileReports(report.fileReports); - return _buffer.toString(); - } - - // Appends the header section of the report - void _appendReportHeader(ProjectReport projectReport) { - _buffer - ..writeln('=== [Analysis Summary] ===') - ..writeln( - '๐Ÿ“„ Files Analyzed: ${projectReport.fileReports.length}', - ) - ..writeln( - '$criticalSymbol Critical Issues: ${projectReport.criticalCount}', - ) - ..writeln('$warningSymbol Warnings: ${projectReport.warningCount}') - ..writeln('$infoSymbol Infos: ${projectReport.infoCount}') - ..linePadding(); - } - - // Appends file-specific reports - void _appendFileReports(List fileReports) { - _buffer - ..writeln('=== [File Reports] ===') - ..linePadding(); - - if (fileReports.isEmpty) { - _buffer.writeln('โš ๏ธ No files analyzed. Check command or configuration.'); - } else { - fileReports.forEach(_appendSingleFileReport); - } - } - - // Appends the report for a single file - void _appendSingleFileReport(FileReport fileReport) { - _buffer - ..writeln('$analyzedFilePrefix ${fileReport.relativePath}') - ..linePadding(); - - if (!fileReport.hasIssues) { - _buffer - ..writeln('$noIssuesSymbol No issues found!') - ..linePadding(); - } else { - _appendIssues('Critical Issues', criticalSymbol, fileReport.criticals); - _appendIssues('Warnings', warningSymbol, fileReport.warnings); - _appendIssues('Infos', infoSymbol, fileReport.infos); - } - } - - // Appends issues of a specific severity type (Critical, Warning, Info) - void _appendIssues(String title, String symbol, List issues) { - _buffer.writeln('--- [ $title ] ---'); - for (final issue in issues) { - _buffer.writeln( - '$symbol\t[${issue.ruleId}] ${issue.message}\n' - '\t- Location: ${issue.location.string}\n', - ); - } - } -} - -extension StringBufferExtension on StringBuffer { - // Adds a new line for padding - void linePadding() => writeln(); -} diff --git a/lib/src/security_analyzer/report/reporters/issue_reporter.dart b/lib/src/security_analyzer/report/reporters/issue_reporter.dart deleted file mode 100644 index f5cf498..0000000 --- a/lib/src/security_analyzer/report/reporters/issue_reporter.dart +++ /dev/null @@ -1,7 +0,0 @@ -import 'package:dart_shield/src/security_analyzer/report/report.dart'; - -// Will be extended in the future. -// ignore: one_member_abstracts -abstract class IssueReporter { - String report(ProjectReport report); -} diff --git a/lib/src/security_analyzer/report/reporters/reporters.dart b/lib/src/security_analyzer/report/reporters/reporters.dart deleted file mode 100644 index 1715db6..0000000 --- a/lib/src/security_analyzer/report/reporters/reporters.dart +++ /dev/null @@ -1 +0,0 @@ -export 'console_report.dart'; diff --git a/lib/src/security_analyzer/rules/enums/enums.dart b/lib/src/security_analyzer/rules/enums/enums.dart deleted file mode 100644 index 7bdf078..0000000 --- a/lib/src/security_analyzer/rules/enums/enums.dart +++ /dev/null @@ -1,3 +0,0 @@ -export 'rule_id.dart'; -export 'rule_status.dart'; -export 'severity.dart'; diff --git a/lib/src/security_analyzer/rules/enums/rule_id.dart b/lib/src/security_analyzer/rules/enums/rule_id.dart deleted file mode 100644 index 6851d62..0000000 --- a/lib/src/security_analyzer/rules/enums/rule_id.dart +++ /dev/null @@ -1,29 +0,0 @@ -enum RuleId { - preferHttpsOverHttp, - avoidHardcodedUrls, - avoidHardcodedSecrets, - avoidWeakHashing, - preferSecureRandom; - - static RuleId fromYamlName(String name) { - // Convert snake_case to camelCase - final camelCaseName = name.replaceAllMapped(RegExp(r'_(\w)'), (match) { - final matchStr = match.group(1); - return matchStr != null ? matchStr.toUpperCase() : ''; - }); - - // Use RuleId.values.byName to get the enum value - return RuleId.values.byName(camelCaseName); - } - - /// Converts the enum name to underscore format for use in suppression - /// comments. - /// Example: preferHttpsOverHttp -> prefer_https_over_http - String toUnderscoreCase() { - final name = this.name; - // Convert camelCase to underscore_case - return name.replaceAllMapped(RegExp('([a-z])([A-Z])'), (match) { - return '${match.group(1)}_${match.group(2)!.toLowerCase()}'; - }); - } -} diff --git a/lib/src/security_analyzer/rules/enums/rule_status.dart b/lib/src/security_analyzer/rules/enums/rule_status.dart deleted file mode 100644 index b59cd92..0000000 --- a/lib/src/security_analyzer/rules/enums/rule_status.dart +++ /dev/null @@ -1 +0,0 @@ -enum RuleStatus { experimental, stable, deprecated } diff --git a/lib/src/security_analyzer/rules/enums/severity.dart b/lib/src/security_analyzer/rules/enums/severity.dart deleted file mode 100644 index 7c1bc30..0000000 --- a/lib/src/security_analyzer/rules/enums/severity.dart +++ /dev/null @@ -1,12 +0,0 @@ -import 'package:analyzer_plugin/protocol/protocol_common.dart'; - -enum Severity { - critical('critical', AnalysisErrorSeverity.ERROR), - warning('warning', AnalysisErrorSeverity.WARNING), - info('info', AnalysisErrorSeverity.INFO); - - const Severity(this.value, this.analysisSeverity); - - final String value; - final AnalysisErrorSeverity analysisSeverity; -} diff --git a/lib/src/security_analyzer/rules/models/matching_pattern.dart b/lib/src/security_analyzer/rules/models/matching_pattern.dart deleted file mode 100644 index a6e889d..0000000 --- a/lib/src/security_analyzer/rules/models/matching_pattern.dart +++ /dev/null @@ -1,19 +0,0 @@ -import 'package:json_annotation/json_annotation.dart'; - -part 'matching_pattern.g.dart'; - -@JsonSerializable(fieldRename: FieldRename.snake, createToJson: false) -class MatchingPattern { - MatchingPattern({ - required this.name, - required this.pattern, - }); - - factory MatchingPattern.fromJson(Map json) => - _$MatchingPatternFromJson(json); - - final String name; - final String pattern; - - RegExp get regex => RegExp(pattern); -} diff --git a/lib/src/security_analyzer/rules/models/matching_pattern.g.dart b/lib/src/security_analyzer/rules/models/matching_pattern.g.dart deleted file mode 100644 index 177a790..0000000 --- a/lib/src/security_analyzer/rules/models/matching_pattern.g.dart +++ /dev/null @@ -1,13 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'matching_pattern.dart'; - -// ************************************************************************** -// JsonSerializableGenerator -// ************************************************************************** - -MatchingPattern _$MatchingPatternFromJson(Map json) => - MatchingPattern( - name: json['name'] as String, - pattern: json['pattern'] as String, - ); diff --git a/lib/src/security_analyzer/rules/models/models.dart b/lib/src/security_analyzer/rules/models/models.dart deleted file mode 100644 index 3613c3b..0000000 --- a/lib/src/security_analyzer/rules/models/models.dart +++ /dev/null @@ -1,2 +0,0 @@ -export 'matching_pattern.dart'; -export 'shield_secrets.dart'; diff --git a/lib/src/security_analyzer/rules/models/shield_secrets.dart b/lib/src/security_analyzer/rules/models/shield_secrets.dart deleted file mode 100644 index 5291bfd..0000000 --- a/lib/src/security_analyzer/rules/models/shield_secrets.dart +++ /dev/null @@ -1,45 +0,0 @@ -import 'package:dart_shield/assets/assets.dart'; -import 'package:dart_shield/src/security_analyzer/rules/models/matching_pattern.dart'; -import 'package:dart_shield/src/utils/utils.dart'; -import 'package:json_annotation/json_annotation.dart'; -import 'package:yaml/yaml.dart'; - -part 'shield_secrets.g.dart'; - -@JsonSerializable(fieldRename: FieldRename.snake, createToJson: false) -class ShieldSecrets { - ShieldSecrets({ - required this.version, - required this.secrets, - required this.keys, - }); - - factory ShieldSecrets.preset() { - // Workaround: Using assets.dart instead of native asset support - // See: https://github.com/dart-lang/sdk/issues/53562 - // TODO(yardex): Migrate to native assets when Dart SDK supports it - // final content = File(_defaultConfigPath).readAsStringSync(); - const content = shieldSecretsSource; - final dartMap = yamlToDartMap(loadYaml(content)) as Map; - return ShieldSecrets.fromYaml(dartMap); - } - - factory ShieldSecrets.fromYaml(Map json) { - final config = json[_yamlRootKey] as Map; - return _$ShieldSecretsFromJson(config); - } - - // Workaround: Using assets.dart instead of native asset support - // See: https://github.com/dart-lang/sdk/issues/53562 - // TODO(yardex): Migrate to native assets when Dart SDK supports it - // static const _defaultConfigPath = '../rules_list/utils/shield_secrets.yaml'; - static const _yamlRootKey = 'shield_patterns'; - - final String version; - final List secrets; - final List keys; - - bool containsSecret(String value) => - secrets.any((p) => p.regex.hasMatch(value)) || - keys.any((p) => p.regex.hasMatch(value)); -} diff --git a/lib/src/security_analyzer/rules/models/shield_secrets.g.dart b/lib/src/security_analyzer/rules/models/shield_secrets.g.dart deleted file mode 100644 index e58ce5f..0000000 --- a/lib/src/security_analyzer/rules/models/shield_secrets.g.dart +++ /dev/null @@ -1,18 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'shield_secrets.dart'; - -// ************************************************************************** -// JsonSerializableGenerator -// ************************************************************************** - -ShieldSecrets _$ShieldSecretsFromJson(Map json) => - ShieldSecrets( - version: json['version'] as String, - secrets: (json['secrets'] as List) - .map((e) => MatchingPattern.fromJson(e as Map)) - .toList(), - keys: (json['keys'] as List) - .map((e) => MatchingPattern.fromJson(e as Map)) - .toList(), - ); diff --git a/lib/src/security_analyzer/rules/rule/error_node_collector.dart b/lib/src/security_analyzer/rules/rule/error_node_collector.dart deleted file mode 100644 index 866b117..0000000 --- a/lib/src/security_analyzer/rules/rule/error_node_collector.dart +++ /dev/null @@ -1,6 +0,0 @@ -import 'package:analyzer/dart/ast/syntactic_entity.dart'; -import 'package:analyzer/dart/ast/visitor.dart'; - -abstract class ErrorNodeCollector extends RecursiveAstVisitor { - List errorNodes = []; -} diff --git a/lib/src/security_analyzer/rules/rule/lint_issue.dart b/lib/src/security_analyzer/rules/rule/lint_issue.dart deleted file mode 100644 index 6492662..0000000 --- a/lib/src/security_analyzer/rules/rule/lint_issue.dart +++ /dev/null @@ -1,38 +0,0 @@ -import 'package:dart_shield/src/security_analyzer/extensions.dart'; -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule/rule.dart'; -import 'package:source_span/source_span.dart'; - -class LintIssue { - LintIssue({ - required this.ruleId, - required this.severity, - required this.message, - required this.location, - }); - - factory LintIssue.withRule({ - required LintRule rule, - required String message, - required SourceSpan location, - }) { - return LintIssue( - ruleId: rule.id.toUnderscoreCase(), - severity: rule.severity, - message: message, - location: location, - ); - } - - final String ruleId; - final Severity severity; - final String message; - final SourceSpan location; - - Map toJson() => { - 'ruleId': ruleId, - 'severity': severity.name, - 'message': message, - 'location': location.toJson(), - }; -} diff --git a/lib/src/security_analyzer/rules/rule/lint_rule.dart b/lib/src/security_analyzer/rules/rule/lint_rule.dart deleted file mode 100644 index c6d6ed2..0000000 --- a/lib/src/security_analyzer/rules/rule/lint_rule.dart +++ /dev/null @@ -1,74 +0,0 @@ -import 'package:analyzer/dart/analysis/results.dart'; -import 'package:analyzer/dart/ast/syntactic_entity.dart'; -import 'package:dart_shield/src/security_analyzer/extensions.dart'; -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule/rule.dart'; -import 'package:glob/glob.dart'; - -abstract class LintRule { - LintRule({ - required this.id, - required this.message, - required this.severity, - required this.excludes, - this.status = RuleStatus.stable, - }); - - final RuleId id; - final String message; - final Severity severity; - final Iterable excludes; - final RuleStatus status; - - Iterable check(ResolvedUnitResult source) { - // Check if file is excluded for this rule - if (_isFileExcluded(source.path)) { - return []; - } - - final issues = collectErrorNodes(source); - return issues - .map( - (item) => LintIssue.withRule( - rule: this, - message: message, - location: SourceSpanX.fromNode(node: item, source: source), - ), - ) - .toList(growable: false); - } - - /// Checks if the file path matches any exclusion pattern for this rule. - bool _isFileExcluded(String filePath) { - return excludes.any((glob) => glob.matches(filePath)); - } - - /// Collects AST nodes that violate this rule. - /// - /// This method must be implemented by concrete rule implementations. - /// It should traverse the provided [source] and identify all AST nodes - /// that represent security violations according to this rule's logic. - /// - /// Returns a list of [SyntacticEntity] nodes where violations were found. - /// An empty list indicates no violations were detected in the source. - /// - /// Example implementation: - /// ```dart - /// @override - /// List collectErrorNodes(ResolvedUnitResult source) { - /// final visitor = _MyRuleVisitor(); - /// source.unit.accept(visitor); - /// return visitor.errorNodes; - /// } - /// ``` - List collectErrorNodes(ResolvedUnitResult source); - - Map toJson() { - return { - 'id': id.name, - 'message': message, - 'severity': severity.name, - 'excludes': excludes.map((glob) => glob.pattern).toList(), - }; - } -} diff --git a/lib/src/security_analyzer/rules/rule/rule.dart b/lib/src/security_analyzer/rules/rule/rule.dart deleted file mode 100644 index 9a89354..0000000 --- a/lib/src/security_analyzer/rules/rule/rule.dart +++ /dev/null @@ -1,3 +0,0 @@ -export 'error_node_collector.dart'; -export 'lint_issue.dart'; -export 'lint_rule.dart'; diff --git a/lib/src/security_analyzer/rules/rule_registry.dart b/lib/src/security_analyzer/rules/rule_registry.dart deleted file mode 100644 index a87f916..0000000 --- a/lib/src/security_analyzer/rules/rule_registry.dart +++ /dev/null @@ -1,57 +0,0 @@ -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule/lint_rule.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rules_list/rules_list.dart'; -import 'package:glob/glob.dart'; - -/// Registry for managing rule creation and instantiation. -/// -/// This class provides a centralized way to create rule instances by mapping -/// [RuleId] values to their corresponding constructor functions. -class RuleRegistry { - /// Static map that associates each [RuleId] with its constructor function. - /// - /// Each entry maps a [RuleId] to a function that takes an [Iterable] - /// for exclusions and returns a [LintRule] instance. - static final Map)> _rules = { - RuleId.preferHttpsOverHttp: (excludes) => - PreferHttpsOverHttp(excludes: excludes), - RuleId.avoidHardcodedUrls: (excludes) => - AvoidHardcodedUrls(excludes: excludes), - RuleId.avoidWeakHashing: (excludes) => AvoidWeakHashing(excludes: excludes), - RuleId.preferSecureRandom: (excludes) => - PreferSecureRandom(excludes: excludes), - RuleId.avoidHardcodedSecrets: (excludes) => - AvoidHardcodedSecrets(excludes: excludes), - }; - - /// Creates a rule instance for the given [id] with the specified [excludes]. - /// - /// Throws an [ArgumentError] if the [id] is not registered in the registry. - /// - /// Example: - /// ```dart - /// final rule = RuleRegistry.createRule( - /// RuleId.avoidHardcodedSecrets, - /// [Glob('**/test/**')], - /// ); - /// ``` - static LintRule createRule({ - required RuleId id, - required Iterable excludes, - }) { - final ruleFactory = _rules[id]; - if (ruleFactory == null) { - throw ArgumentError('Unknown rule: $id'); - } - return ruleFactory(excludes); - } - - /// Returns all registered rule IDs. - /// - /// This can be useful for validation, documentation generation, or - /// listing available rules. - static Iterable get registeredRuleIds => _rules.keys; - - /// Checks if a rule with the given [id] is registered. - static bool isRuleRegistered(RuleId id) => _rules.containsKey(id); -} diff --git a/lib/src/security_analyzer/rules/rules.dart b/lib/src/security_analyzer/rules/rules.dart deleted file mode 100644 index cdd6a5d..0000000 --- a/lib/src/security_analyzer/rules/rules.dart +++ /dev/null @@ -1,2 +0,0 @@ -export 'rule/rule.dart'; -export 'rule_registry.dart'; diff --git a/lib/src/security_analyzer/rules/rules_list/avoid_hardcoded_secrets.dart b/lib/src/security_analyzer/rules/rules_list/avoid_hardcoded_secrets.dart deleted file mode 100644 index 7daf02b..0000000 --- a/lib/src/security_analyzer/rules/rules_list/avoid_hardcoded_secrets.dart +++ /dev/null @@ -1,43 +0,0 @@ -import 'package:analyzer/dart/analysis/results.dart'; -import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/ast/syntactic_entity.dart'; -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:dart_shield/src/security_analyzer/rules/models/models.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule/rule.dart'; - -class AvoidHardcodedSecrets extends LintRule { - AvoidHardcodedSecrets({required super.excludes}) - : super( - id: RuleId.avoidHardcodedSecrets, - message: _message, - severity: Severity.critical, - status: RuleStatus.stable, - ); - - static const _message = - 'Avoid hardcoding credentials/keys in the code. Use configuration files ' - 'or environment variables instead.'; - - @override - List collectErrorNodes(ResolvedUnitResult source) { - final secrets = ShieldSecrets.preset(); - final visitor = _AvoidHardcodedSecretsVisitor(secrets: secrets); - source.unit.accept(visitor); - return visitor.errorNodes; - } -} - -class _AvoidHardcodedSecretsVisitor extends ErrorNodeCollector { - _AvoidHardcodedSecretsVisitor({required this.secrets}); - - final ShieldSecrets secrets; - - @override - void visitSimpleStringLiteral(SimpleStringLiteral node) { - final valueToCheck = node.value; - if (secrets.containsSecret(valueToCheck)) { - errorNodes.add(node); - } - super.visitSimpleStringLiteral(node); - } -} diff --git a/lib/src/security_analyzer/rules/rules_list/avoid_hardcoded_urls.dart b/lib/src/security_analyzer/rules/rules_list/avoid_hardcoded_urls.dart deleted file mode 100644 index 0fe5a71..0000000 --- a/lib/src/security_analyzer/rules/rules_list/avoid_hardcoded_urls.dart +++ /dev/null @@ -1,36 +0,0 @@ -import 'package:analyzer/dart/analysis/results.dart'; -import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/ast/syntactic_entity.dart'; -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule/rule.dart'; - -class AvoidHardcodedUrls extends LintRule { - AvoidHardcodedUrls({required super.excludes}) - : super( - id: RuleId.avoidHardcodedUrls, - message: _message, - severity: Severity.warning, - status: RuleStatus.experimental, - ); - - static const _message = - 'Avoid hardcoding URLs in the code. Use configuration files or ' - 'environment variables instead.'; - - @override - List collectErrorNodes(ResolvedUnitResult source) { - final visitor = _AvoidHardcodedUrlsVisitor(); - source.unit.accept(visitor); - return visitor.errorNodes; - } -} - -class _AvoidHardcodedUrlsVisitor extends ErrorNodeCollector { - @override - void visitSimpleStringLiteral(SimpleStringLiteral node) { - if (node.value.startsWith('http:') || node.value.startsWith('https:')) { - errorNodes.add(node); - } - super.visitSimpleStringLiteral(node); - } -} diff --git a/lib/src/security_analyzer/rules/rules_list/crypto/avoid_weak_hashing.dart b/lib/src/security_analyzer/rules/rules_list/crypto/avoid_weak_hashing.dart deleted file mode 100644 index e4cc48d..0000000 --- a/lib/src/security_analyzer/rules/rules_list/crypto/avoid_weak_hashing.dart +++ /dev/null @@ -1,73 +0,0 @@ -import 'package:analyzer/dart/analysis/results.dart'; -import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/ast/syntactic_entity.dart'; -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule/rule.dart'; - -class AvoidWeakHashing extends LintRule { - AvoidWeakHashing({required super.excludes}) - : super( - id: RuleId.avoidWeakHashing, - message: _message, - severity: Severity.warning, - status: RuleStatus.experimental, - ); - - static const _message = - 'Avoid using weak hashing algorithms such as MD5 or SHA-1.'; - - @override - List collectErrorNodes(ResolvedUnitResult source) { - final visitor = _WeakCryptoHashingVisitor(); - source.unit.accept(visitor); - return visitor.errorNodes; - } -} - -class _WeakCryptoHashingVisitor extends ErrorNodeCollector { - final _unsafeHashes = ['md5', 'sha1']; - - @override - void visitMethodInvocation(MethodInvocation node) { - if (_isTargetWeakHash(node)) { - errorNodes.add(node); - } - - super.visitMethodInvocation(node); - } - - bool _isTargetWeakHash(MethodInvocation node) { - final target = node.target; - if (target == null) { - return false; - } - - if (target is! SimpleIdentifier) { - return false; - } - - return _isIdentifierWeakHash(target); - } - - @override - void visitAssignmentExpression(AssignmentExpression node) { - if (_isAssignmentWeakHash(node)) { - errorNodes.add(node); - } - } - - bool _isAssignmentWeakHash(AssignmentExpression node) { - final rhs = node.rightHandSide; - - if (rhs is SimpleIdentifier) { - return _isIdentifierWeakHash(rhs); - } - - return false; - } - - bool _isIdentifierWeakHash(SimpleIdentifier identifier) { - return _unsafeHashes.any((weakHash) => weakHash == identifier.name) && - identifier.staticType?.getDisplayString() == 'Hash'; - } -} diff --git a/lib/src/security_analyzer/rules/rules_list/crypto/crypto.dart b/lib/src/security_analyzer/rules/rules_list/crypto/crypto.dart deleted file mode 100644 index d1284c5..0000000 --- a/lib/src/security_analyzer/rules/rules_list/crypto/crypto.dart +++ /dev/null @@ -1,2 +0,0 @@ -export 'avoid_weak_hashing.dart'; -export 'prefer_secure_random.dart'; diff --git a/lib/src/security_analyzer/rules/rules_list/crypto/prefer_secure_random.dart b/lib/src/security_analyzer/rules/rules_list/crypto/prefer_secure_random.dart deleted file mode 100644 index a0b3fbf..0000000 --- a/lib/src/security_analyzer/rules/rules_list/crypto/prefer_secure_random.dart +++ /dev/null @@ -1,50 +0,0 @@ -import 'package:analyzer/dart/analysis/results.dart'; -import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/ast/syntactic_entity.dart'; -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule/error_node_collector.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule/lint_rule.dart'; - -class PreferSecureRandom extends LintRule { - PreferSecureRandom({required super.excludes}) - : super( - id: RuleId.preferSecureRandom, - message: _message, - severity: Severity.info, - status: RuleStatus.experimental, - ); - - static const _message = - 'Random() is not cryptographically safe. Use Random.secure() for ' - 'security-sensitive use cases.'; - - @override - List collectErrorNodes(ResolvedUnitResult source) { - final visitor = _PreferSecureRandomVisitor(); - source.unit.accept(visitor); - return visitor.errorNodes; - } -} - -class _PreferSecureRandomVisitor extends ErrorNodeCollector { - @override - void visitInstanceCreationExpression(InstanceCreationExpression node) { - final token = node.beginToken; - if (token.lexeme != 'Random') { - return; - } - - if (_isRandomUnsecure(node)) { - errorNodes.add(node); - } - - super.visitInstanceCreationExpression(node); - } - - bool _isRandomUnsecure(InstanceCreationExpression node) { - final baseConstructor = node.beginToken.lexeme; - final constructorName = node.constructorName.name?.name; - - return baseConstructor == 'Random' && constructorName != 'secure'; - } -} diff --git a/lib/src/security_analyzer/rules/rules_list/prefer_https_over_http.dart b/lib/src/security_analyzer/rules/rules_list/prefer_https_over_http.dart deleted file mode 100644 index f8f4d8a..0000000 --- a/lib/src/security_analyzer/rules/rules_list/prefer_https_over_http.dart +++ /dev/null @@ -1,57 +0,0 @@ -import 'package:analyzer/dart/analysis/results.dart'; -import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/ast/syntactic_entity.dart'; -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule/rule.dart'; - -class PreferHttpsOverHttp extends LintRule { - PreferHttpsOverHttp({required super.excludes}) - : super( - id: RuleId.preferHttpsOverHttp, - message: _message, - severity: Severity.info, - ); - - static const _message = 'Prefer HTTPS over HTTP for URLs in the code.'; - - @override - List collectErrorNodes(ResolvedUnitResult source) { - final visitor = _PreferHttpsOverHttpVisitor(); - source.unit.accept(visitor); - return visitor.errorNodes; - } -} - -class _PreferHttpsOverHttpVisitor extends ErrorNodeCollector { - @override - void visitInstanceCreationExpression(InstanceCreationExpression node) { - if (node.beginToken.lexeme != 'Uri') { - return; - } - - if (_isUnsafeUriInstance(node)) { - errorNodes.add(node); - } - - super.visitInstanceCreationExpression(node); - } - - @override - void visitSimpleStringLiteral(SimpleStringLiteral node) { - if (node.beginToken.lexeme.startsWith('http:')) { - errorNodes.add(node); - } - - super.visitSimpleStringLiteral(node); - } - - bool _isUnsafeUriInstance(InstanceCreationExpression node) { - final token = node.beginToken; - final baseConstructor = token.lexeme; - final constructorName = node.constructorName.name?.name; - final constructorToken = token.next?.next?.lexeme; - - return baseConstructor == 'Uri' && - (constructorName == 'http' || constructorToken == 'http'); - } -} diff --git a/lib/src/security_analyzer/rules/rules_list/rules_list.dart b/lib/src/security_analyzer/rules/rules_list/rules_list.dart deleted file mode 100644 index d9a7c18..0000000 --- a/lib/src/security_analyzer/rules/rules_list/rules_list.dart +++ /dev/null @@ -1,4 +0,0 @@ -export 'avoid_hardcoded_secrets.dart'; -export 'avoid_hardcoded_urls.dart'; -export 'crypto/crypto.dart'; -export 'prefer_https_over_http.dart'; diff --git a/lib/src/security_analyzer/security_analyzer.dart b/lib/src/security_analyzer/security_analyzer.dart deleted file mode 100644 index 1a83265..0000000 --- a/lib/src/security_analyzer/security_analyzer.dart +++ /dev/null @@ -1,104 +0,0 @@ -import 'package:analyzer/dart/analysis/analysis_context.dart'; -import 'package:analyzer/dart/analysis/analysis_context_collection.dart'; -import 'package:analyzer/dart/analysis/results.dart'; -import 'package:dart_shield/src/security_analyzer/configuration/shield_config.dart'; -import 'package:dart_shield/src/security_analyzer/extensions.dart'; -import 'package:dart_shield/src/security_analyzer/report/report.dart'; -import 'package:dart_shield/src/security_analyzer/utils/suppression.dart'; -import 'package:dart_shield/src/security_analyzer/workspace.dart'; -import 'package:glob/glob.dart'; -import 'package:path/path.dart'; - -class _AnalysisContextResult { - _AnalysisContextResult(this.reports, this.skippedFiles); - - final List reports; - final List skippedFiles; -} - -class SecurityAnalyzer { - Future analyzeFromCli( - Workspace workspace, - ShieldConfig config, - ) async { - final projectReport = ProjectReport.empty(workspace.rootFolder); - final collection = _createCollection(workspace); - final allSkippedFiles = []; - - for (final context in collection.contexts) { - final result = await _analyzeContext(workspace, context, config); - projectReport.addLintReports(result.reports); - allSkippedFiles.addAll(result.skippedFiles); - } - - // Store skipped files in the project report for logging - projectReport.skippedFiles = allSkippedFiles; - - return projectReport; - } - - Future<_AnalysisContextResult> _analyzeContext( - Workspace workspace, - AnalysisContext context, - ShieldConfig config, - ) async { - final dartFiles = _parseDartFiles(workspace, config); - final analyzerResults = []; - final skippedFiles = []; - - for (final file in dartFiles) { - final result = await context.currentSession.tryGetResolvedUnit(file); - if (result != null) { - final fileReport = _analyzeUnit(workspace, result, config); - analyzerResults.add(fileReport); - } else { - skippedFiles.add(file); - } - } - - return _AnalysisContextResult(analyzerResults, skippedFiles); - } - - FileReport _analyzeUnit( - Workspace workspace, - ResolvedUnitResult result, - ShieldConfig config, - ) { - final relativePath = relative(result.path, from: workspace.rootFolder); - final suppression = Suppression(result.content, result.lineInfo); - - // Filter rules by file-level suppression - final applicableRules = config.allRules.where( - (rule) => !suppression.isSuppressed(rule.id.toUnderscoreCase()), - ); - - // Check rules and filter issues by line-level suppression - final issues = applicableRules - .expand((rule) => rule.check(result)) - .where( - (issue) => !suppression.isSuppressedAt( - issue.ruleId, - issue.location.start.line, - ), - ) - .toList(); - - return FileReport.fromIssues(relativePath, issues); - } - - AnalysisContextCollection _createCollection(Workspace workspace) { - return AnalysisContextCollection( - includedPaths: workspace.normalizedFolders, - ); - } - - Set _parseDartFiles(Workspace workspace, ShieldConfig config) { - final dartGlob = Glob('**.dart'); - final excludePatterns = config.exclude.map(Glob.new); - - return workspace.normalizedFolders - .expand(dartGlob.normalizePaths) - .where((path) => excludePatterns.every((glob) => !glob.matches(path))) - .toSet(); - } -} diff --git a/lib/src/security_analyzer/utils/suppression.dart b/lib/src/security_analyzer/utils/suppression.dart deleted file mode 100644 index 0d8f4f9..0000000 --- a/lib/src/security_analyzer/utils/suppression.dart +++ /dev/null @@ -1,67 +0,0 @@ -import 'package:analyzer/source/line_info.dart'; - -/// Represents an information about rule suppression for dart_shield. -class Suppression { - /// Initialize a newly created [Suppression] with the given [content] - /// and [lineInfo]. - Suppression(String content, this.lineInfo) { - _parseIgnoreComments(content); - _parseIgnoreForFileComments(content); - } - static final _ignoreMatchers = RegExp( - '//[ ]*shield_ignore:(.*)', - multiLine: true, - ); - static final _ignoreForFileMatcher = RegExp( - '//[ ]*shield_ignore_for_file:(.*)', - multiLine: true, - ); - - final _ignoreMap = >{}; - final _ignoreForFileSet = {}; - - final LineInfo lineInfo; - - /// Checks that the [id] is globally suppressed for the entire file. - bool isSuppressed(String id) => _ignoreForFileSet.contains(_canonicalize(id)); - - /// Checks that the [id] is suppressed for the [lineIndex]. - bool isSuppressedAt(String id, int lineIndex) => - isSuppressed(id) || - (_ignoreMap[lineIndex]?.contains(_canonicalize(id)) ?? false); - - void _parseIgnoreComments(String content) { - for (final match in _ignoreMatchers.allMatches(content)) { - final ids = match.group(1)!.split(',').map(_canonicalize); - final location = lineInfo.getLocation(match.start); - final lineNumber = location.lineNumber; - final offset = lineInfo.getOffsetOfLine(lineNumber - 1); - final beforeMatch = content.substring( - offset, - offset + location.columnNumber - 1, - ); - - // If comment sits next to code, it refers to its own line, otherwise it - // refers to the next line. - final ignoredNextLine = beforeMatch.trim().isEmpty; - _ignoreMap - .putIfAbsent( - ignoredNextLine ? lineNumber + 1 : lineNumber, - () => [], - ) - .addAll(ids); - } - } - - void _parseIgnoreForFileComments(String content) { - for (final match in _ignoreForFileMatcher.allMatches(content)) { - final suppressed = match.group(1)!.split(',').map(_canonicalize); - _ignoreForFileSet.addAll(suppressed); - } - } - - /// Canonicalizes rule IDs by trimming whitespace and converting to lowercase. - String _canonicalize(String ruleId) { - return ruleId.trim().toLowerCase(); - } -} diff --git a/lib/src/security_analyzer/workspace.dart b/lib/src/security_analyzer/workspace.dart deleted file mode 100644 index b0cbe84..0000000 --- a/lib/src/security_analyzer/workspace.dart +++ /dev/null @@ -1,36 +0,0 @@ -import 'dart:io'; - -import 'package:path/path.dart'; - -class Workspace { - Workspace({ - required this.analyzedPaths, - required this.rootFolder, - }) : configPath = join(rootFolder, _configFileName); - - final List analyzedPaths; - final String rootFolder; - final String configPath; - - static const _configFileName = 'shield_options.yaml'; - - List get normalizedFolders => - analyzedPaths.map((path) => normalize(join(rootFolder, path))).toList(); - - bool get configExists => File(configPath).existsSync(); - - void createDefaultConfig() { - File(configPath) - ..createSync() - ..writeAsStringSync(_defaultConfig); - } -} - -const _defaultConfig = ''' -# dart_shield configuration file -# This file is used to configure analyser behavior. -# For more information, see [link] -shield: - rules: - - prefer_https_over_http -'''; diff --git a/lib/src/utils/path.dart b/lib/src/utils/path.dart new file mode 100644 index 0000000..dc024f4 --- /dev/null +++ b/lib/src/utils/path.dart @@ -0,0 +1,25 @@ +import 'dart:io'; + +import 'package:glob/glob.dart'; +import 'package:path/path.dart' as path; + +String normalize(String p, String rootFolder) { + final absolutePath = path.isAbsolute(p) ? p : path.join(rootFolder, p); + return path.normalize(absolutePath); +} + +List findDartFiles(String rootFolder) { + final dartGlob = Glob('**.dart'); + + final dir = Directory(rootFolder); + if (!dir.existsSync()) return []; + + final files = []; + for (final entity in dir.listSync(recursive: true)) { + if (entity is File && entity.path.endsWith('.dart')) { + final relative = path.relative(entity.path, from: rootFolder); + if (dartGlob.matches(relative)) files.add(entity.path); + } + } + return files; +} diff --git a/lib/src/utils/utils.dart b/lib/src/utils/utils.dart deleted file mode 100644 index f380e4a..0000000 --- a/lib/src/utils/utils.dart +++ /dev/null @@ -1 +0,0 @@ -export 'yaml.dart'; diff --git a/lib/src/utils/yaml.dart b/lib/src/utils/yaml.dart deleted file mode 100644 index 1d53104..0000000 --- a/lib/src/utils/yaml.dart +++ /dev/null @@ -1,18 +0,0 @@ -// yaml package doesn't provide a way to deserialize yaml file into map. -// Issue is already opened. Kudos to @clragon for this code snippet. -// GitHub issue url: https://github.com/dart-lang/yaml/issues/147#issuecomment-1836666943 -dynamic yamlToDartMap(dynamic value) { - if (value is Map) { - final entries = >[]; - // We cannot directly use `entries` because `YamlMap` will return Nodes - // instead of values. - for (final key in value.keys) { - entries.add(MapEntry(key as String, yamlToDartMap(value[key]))); - } - return Map.fromEntries(entries); - } else if (value is List) { - return List.from(value.map(yamlToDartMap)); - } else { - return value; - } -} diff --git a/pubspec.yaml b/pubspec.yaml index 990a98d..3d994d9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,12 +11,14 @@ topics: - static-analysis environment: - sdk: ">=3.9.0 <4.0.0" + sdk: ">=3.10.0 <4.0.0" dependencies: + analysis_server_plugin: ^0.3.2 analyzer: ^8.2.0 analyzer_plugin: ^0.13.8 args: ^2.5.0 + checked_yaml: ^2.0.4 cli_completion: ^0.5.1 collection: ^1.18.0 file: ^7.0.0 @@ -28,11 +30,16 @@ dependencies: pub_updater: ^0.5.0 source_span: ^1.10.0 yaml: ^3.1.2 + yaml_edit: ^2.2.2 dev_dependencies: - build_runner: ^2.4.10 - json_serializable: ^6.8.0 + analyzer_testing: ^0.1.0 + build_runner: ^2.10.4 + http: ^1.6.0 + json_serializable: ^6.11.2 test: ^1.25.5 + test_reflective_loader: ^0.2.0 + toml: ^0.17.0 very_good_analysis: ^10.0.0 executables: diff --git a/rules.json b/rules.json new file mode 100644 index 0000000..497a803 --- /dev/null +++ b/rules.json @@ -0,0 +1,2366 @@ +[ + { + "id": "1password-secret-key", + "description": "Uncovered a possible 1Password secret key, potentially compromising access to secrets in vaults.", + "pattern": "\\bA3-[A-Z0-9]{6}-(?:(?:[A-Z0-9]{11})|(?:[A-Z0-9]{6}-[A-Z0-9]{5}))-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}\\b", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "a3-" + ], + "minEntropy": 3.8 + }, + { + "id": "1password-service-account-token", + "description": "Uncovered a possible 1Password service account token, potentially compromising access to secrets in vaults.", + "pattern": "ops_eyJ[a-zA-Z0-9+/]{250,}={0,3}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "ops_" + ], + "minEntropy": 4.0 + }, + { + "id": "adafruit-api-key", + "description": "Identified a potential Adafruit API Key, which could lead to unauthorized access to Adafruit services and sensitive data exposure.", + "pattern": "[\\w.-]{0,50}?(?:adafruit)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9_-]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "adafruit" + ], + "minEntropy": 0.0 + }, + { + "id": "adobe-client-id", + "description": "Detected a pattern that resembles an Adobe OAuth Web Client ID, posing a risk of compromised Adobe integrations and data breaches.", + "pattern": "[\\w.-]{0,50}?(?:adobe)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "adobe" + ], + "minEntropy": 2.0 + }, + { + "id": "adobe-client-secret", + "description": "Discovered a potential Adobe Client Secret, which, if exposed, could allow unauthorized Adobe service access and data manipulation.", + "pattern": "\\b(p8e-[a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "p8e-" + ], + "minEntropy": 2.0 + }, + { + "id": "age-secret-key", + "description": "Discovered a potential Age encryption tool secret key, risking data decryption and unauthorized access to sensitive information.", + "pattern": "AGE-SECRET-KEY-1[QPZRY9X8GF2TVDW0S3JN54KHCE6MUA7L]{58}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "age-secret-key-1" + ], + "minEntropy": 0.0 + }, + { + "id": "airtable-api-key", + "description": "Uncovered a possible Airtable API Key, potentially compromising database access and leading to data leakage or alteration.", + "pattern": "[\\w.-]{0,50}?(?:airtable)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{17})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "airtable" + ], + "minEntropy": 0.0 + }, + { + "id": "airtable-personnal-access-token", + "description": "Uncovered a possible Airtable Personal AccessToken, potentially compromising database access and leading to data leakage or alteration.", + "pattern": "\\b(pat[[:alnum:]]{14}\\.[a-f0-9]{64})\\b", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "airtable" + ], + "minEntropy": 0.0 + }, + { + "id": "algolia-api-key", + "description": "Identified an Algolia API Key, which could result in unauthorized search operations and data exposure on Algolia-managed platforms.", + "pattern": "[\\w.-]{0,50}?(?:algolia)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "algolia" + ], + "minEntropy": 0.0 + }, + { + "id": "alibaba-access-key-id", + "description": "Detected an Alibaba Cloud AccessKey ID, posing a risk of unauthorized cloud resource access and potential data compromise.", + "pattern": "\\b(LTAI[a-z0-9]{20})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "ltai" + ], + "minEntropy": 2.0 + }, + { + "id": "alibaba-secret-key", + "description": "Discovered a potential Alibaba Cloud Secret Key, potentially allowing unauthorized operations and data access within Alibaba Cloud.", + "pattern": "[\\w.-]{0,50}?(?:alibaba)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{30})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "alibaba" + ], + "minEntropy": 2.0 + }, + { + "id": "anthropic-admin-api-key", + "description": "Detected an Anthropic Admin API Key, risking unauthorized access to administrative functions and sensitive AI model configurations.", + "pattern": "\\b(sk-ant-admin01-[a-zA-Z0-9_\\-]{93}AA)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sk-ant-admin01" + ], + "minEntropy": 0.0 + }, + { + "id": "anthropic-api-key", + "description": "Identified an Anthropic API Key, which may compromise AI assistant integrations and expose sensitive data to unauthorized access.", + "pattern": "\\b(sk-ant-api03-[a-zA-Z0-9_\\-]{93}AA)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sk-ant-api03" + ], + "minEntropy": 0.0 + }, + { + "id": "artifactory-api-key", + "description": "Detected an Artifactory api key, posing a risk unauthorized access to the central repository.", + "pattern": "\\bAKCp[A-Za-z0-9]{69}\\b", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "akcp" + ], + "minEntropy": 4.5 + }, + { + "id": "artifactory-reference-token", + "description": "Detected an Artifactory reference token, posing a risk of impersonation and unauthorized access to the central repository.", + "pattern": "\\bcmVmd[A-Za-z0-9]{59}\\b", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "cmvmd" + ], + "minEntropy": 4.5 + }, + { + "id": "asana-client-id", + "description": "Discovered a potential Asana Client ID, risking unauthorized access to Asana projects and sensitive task information.", + "pattern": "[\\w.-]{0,50}?(?:asana)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "asana" + ], + "minEntropy": 0.0 + }, + { + "id": "asana-client-secret", + "description": "Identified an Asana Client Secret, which could lead to compromised project management integrity and unauthorized access.", + "pattern": "[\\w.-]{0,50}?(?:asana)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "asana" + ], + "minEntropy": 0.0 + }, + { + "id": "aws-access-token", + "description": "Identified a pattern that may indicate AWS credentials, risking unauthorized cloud resource access and data breaches on AWS platforms.", + "pattern": "\\b((?:A3T[A-Z0-9]|AKIA|ASIA|ABIA|ACCA)[A-Z2-7]{16})\\b", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "a3t", + "akia", + "asia", + "abia", + "acca" + ], + "minEntropy": 3.0 + }, + { + "id": "aws-amazon-bedrock-api-key-long-lived", + "description": "Identified a pattern that may indicate long-lived Amazon Bedrock API keys, risking unauthorized Amazon Bedrock usage", + "pattern": "\\b(ABSK[A-Za-z0-9+/]{109,269}={0,2})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "absk" + ], + "minEntropy": 3.0 + }, + { + "id": "aws-amazon-bedrock-api-key-short-lived", + "description": "Identified a pattern that may indicate short-lived Amazon Bedrock API keys, risking unauthorized Amazon Bedrock usage", + "pattern": "bedrock-api-key-YmVkcm9jay5hbWF6b25hd3MuY29t", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "bedrock-api-key-" + ], + "minEntropy": 3.0 + }, + { + "id": "azure-ad-client-secret", + "description": "Azure AD Client Secret", + "pattern": "(?:^|[\\\\'\"\\x60\\s>=:(,)])([a-zA-Z0-9_~.]{3}\\dQ~[a-zA-Z0-9_~.-]{31,34})(?:$|[\\\\'\"\\x60\\s<),])", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "q~" + ], + "minEntropy": 3.0 + }, + { + "id": "beamer-api-token", + "description": "Detected a Beamer API token, potentially compromising content management and exposing sensitive notifications and updates.", + "pattern": "[\\w.-]{0,50}?(?:beamer)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(b_[a-z0-9=_\\-]{44})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "beamer" + ], + "minEntropy": 0.0 + }, + { + "id": "bitbucket-client-id", + "description": "Discovered a potential Bitbucket Client ID, risking unauthorized repository access and potential codebase exposure.", + "pattern": "[\\w.-]{0,50}?(?:bitbucket)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "bitbucket" + ], + "minEntropy": 0.0 + }, + { + "id": "bitbucket-client-secret", + "description": "Discovered a potential Bitbucket Client Secret, posing a risk of compromised code repositories and unauthorized access.", + "pattern": "[\\w.-]{0,50}?(?:bitbucket)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "bitbucket" + ], + "minEntropy": 0.0 + }, + { + "id": "bittrex-access-key", + "description": "Identified a Bittrex Access Key, which could lead to unauthorized access to cryptocurrency trading accounts and financial loss.", + "pattern": "[\\w.-]{0,50}?(?:bittrex)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "bittrex" + ], + "minEntropy": 0.0 + }, + { + "id": "bittrex-secret-key", + "description": "Detected a Bittrex Secret Key, potentially compromising cryptocurrency transactions and financial security.", + "pattern": "[\\w.-]{0,50}?(?:bittrex)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "bittrex" + ], + "minEntropy": 0.0 + }, + { + "id": "clickhouse-cloud-api-secret-key", + "description": "Identified a pattern that may indicate clickhouse cloud API secret key, risking unauthorized clickhouse cloud api access and data breaches on ClickHouse Cloud platforms.", + "pattern": "\\b(4b1d[A-Za-z0-9]{38})\\b", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "4b1d" + ], + "minEntropy": 3.0 + }, + { + "id": "clojars-api-token", + "description": "Uncovered a possible Clojars API token, risking unauthorized access to Clojure libraries and potential code manipulation.", + "pattern": "CLOJARS_[a-z0-9]{60}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "clojars_" + ], + "minEntropy": 2.0 + }, + { + "id": "cloudflare-api-key", + "description": "Detected a Cloudflare API Key, potentially compromising cloud application deployments and operational security.", + "pattern": "[\\w.-]{0,50}?(?:cloudflare)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9_-]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "cloudflare" + ], + "minEntropy": 2.0 + }, + { + "id": "cloudflare-global-api-key", + "description": "Detected a Cloudflare Global API Key, potentially compromising cloud application deployments and operational security.", + "pattern": "[\\w.-]{0,50}?(?:cloudflare)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{37})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "cloudflare" + ], + "minEntropy": 2.0 + }, + { + "id": "cloudflare-origin-ca-key", + "description": "Detected a Cloudflare Origin CA Key, potentially compromising cloud application deployments and operational security.", + "pattern": "\\b(v1\\.0-[a-f0-9]{24}-[a-f0-9]{146})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "cloudflare", + "v1.0-" + ], + "minEntropy": 2.0 + }, + { + "id": "codecov-access-token", + "description": "Found a pattern resembling a Codecov Access Token, posing a risk of unauthorized access to code coverage reports and sensitive data.", + "pattern": "[\\w.-]{0,50}?(?:codecov)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "codecov" + ], + "minEntropy": 0.0 + }, + { + "id": "cohere-api-token", + "description": "Identified a Cohere Token, posing a risk of unauthorized access to AI services and data manipulation.", + "pattern": "[\\w.-]{0,50}?(?:[\\w.-]{0,50}?(?:cohere|CO_API_KEY)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3})(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-zA-Z0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "cohere", + "co_api_key" + ], + "minEntropy": 4.0 + }, + { + "id": "coinbase-access-token", + "description": "Detected a Coinbase Access Token, posing a risk of unauthorized access to cryptocurrency accounts and financial transactions.", + "pattern": "[\\w.-]{0,50}?(?:coinbase)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9_-]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "coinbase" + ], + "minEntropy": 0.0 + }, + { + "id": "confluent-access-token", + "description": "Identified a Confluent Access Token, which could compromise access to streaming data platforms and sensitive data flow.", + "pattern": "[\\w.-]{0,50}?(?:confluent)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "confluent" + ], + "minEntropy": 0.0 + }, + { + "id": "confluent-secret-key", + "description": "Found a Confluent Secret Key, potentially risking unauthorized operations and data access within Confluent services.", + "pattern": "[\\w.-]{0,50}?(?:confluent)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "confluent" + ], + "minEntropy": 0.0 + }, + { + "id": "contentful-delivery-api-token", + "description": "Discovered a Contentful delivery API token, posing a risk to content management systems and data integrity.", + "pattern": "[\\w.-]{0,50}?(?:contentful)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{43})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "contentful" + ], + "minEntropy": 0.0 + }, + { + "id": "curl-auth-header", + "description": "Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.", + "pattern": "\\bcurl\\b(?:.*?|.*?(?:[\\r\\n]{1,2}.*?){1,5})[ \\t\\n\\r](?:-H|--header)(?:=|[ \\t]{0,5})(?:\"(?:Authorization:[ \\t]{0,5}(?:Basic[ \\t]([a-z0-9+/]{8,}={0,3})|(?:Bearer|(?:Api-)?Token)[ \\t]([\\w=~@.+/-]{8,})|([\\w=~@.+/-]{8,}))|(?:(?:X-(?:[a-z]+-)?)?(?:Api-?)?(?:Key|Token)):[ \\t]{0,5}([\\w=~@.+/-]{8,}))\"|'(?:Authorization:[ \\t]{0,5}(?:Basic[ \\t]([a-z0-9+/]{8,}={0,3})|(?:Bearer|(?:Api-)?Token)[ \\t]([\\w=~@.+/-]{8,})|([\\w=~@.+/-]{8,}))|(?:(?:X-(?:[a-z]+-)?)?(?:Api-?)?(?:Key|Token)):[ \\t]{0,5}([\\w=~@.+/-]{8,}))')(?:\\B|\\s|\\z)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "curl" + ], + "minEntropy": 2.75 + }, + { + "id": "curl-auth-user", + "description": "Discovered a potential basic authorization token provided in a curl command, which could compromise the curl accessed resource.", + "pattern": "\\bcurl\\b(?:.*|.*(?:[\\r\\n]{1,2}.*){1,5})[ \\t\\n\\r](?:-u|--user)(?:=|[ \\t]{0,5})(\"(:[^\"]{3,}|[^:\"]{3,}:|[^:\"]{3,}:[^\"]{3,})\"|'([^:']{3,}:[^']{3,})'|((?:\"[^\"]{3,}\"|'[^']{3,}'|[\\w$@.-]+):(?:\"[^\"]{3,}\"|'[^']{3,}'|[\\w${}@.-]+)))(?:\\s|\\z)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "curl" + ], + "minEntropy": 2.0 + }, + { + "id": "databricks-api-token", + "description": "Uncovered a Databricks API token, which may compromise big data analytics platforms and sensitive data processing.", + "pattern": "\\b(dapi[a-f0-9]{32}(?:-\\d)?)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "dapi" + ], + "minEntropy": 3.0 + }, + { + "id": "datadog-access-token", + "description": "Detected a Datadog Access Token, potentially risking monitoring and analytics data exposure and manipulation.", + "pattern": "[\\w.-]{0,50}?(?:datadog)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "datadog" + ], + "minEntropy": 0.0 + }, + { + "id": "defined-networking-api-token", + "description": "Identified a Defined Networking API token, which could lead to unauthorized network operations and data breaches.", + "pattern": "[\\w.-]{0,50}?(?:dnkey)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(dnkey-[a-z0-9=_\\-]{26}-[a-z0-9=_\\-]{52})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "dnkey" + ], + "minEntropy": 0.0 + }, + { + "id": "digitalocean-access-token", + "description": "Found a DigitalOcean OAuth Access Token, risking unauthorized cloud resource access and data compromise.", + "pattern": "\\b(doo_v1_[a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "doo_v1_" + ], + "minEntropy": 3.0 + }, + { + "id": "digitalocean-pat", + "description": "Discovered a DigitalOcean Personal Access Token, posing a threat to cloud infrastructure security and data privacy.", + "pattern": "\\b(dop_v1_[a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "dop_v1_" + ], + "minEntropy": 3.0 + }, + { + "id": "digitalocean-refresh-token", + "description": "Uncovered a DigitalOcean OAuth Refresh Token, which could allow prolonged unauthorized access and resource manipulation.", + "pattern": "\\b(dor_v1_[a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "dor_v1_" + ], + "minEntropy": 0.0 + }, + { + "id": "discord-api-token", + "description": "Detected a Discord API key, potentially compromising communication channels and user data privacy on Discord.", + "pattern": "[\\w.-]{0,50}?(?:discord)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "discord" + ], + "minEntropy": 0.0 + }, + { + "id": "discord-client-id", + "description": "Identified a Discord client ID, which may lead to unauthorized integrations and data exposure in Discord applications.", + "pattern": "[\\w.-]{0,50}?(?:discord)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9]{18})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "discord" + ], + "minEntropy": 2.0 + }, + { + "id": "discord-client-secret", + "description": "Discovered a potential Discord client secret, risking compromised Discord bot integrations and data leaks.", + "pattern": "[\\w.-]{0,50}?(?:discord)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "discord" + ], + "minEntropy": 2.0 + }, + { + "id": "doppler-api-token", + "description": "Discovered a Doppler API token, posing a risk to environment and secrets management security.", + "pattern": "dp\\.pt\\.[a-z0-9]{43}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "dp.pt." + ], + "minEntropy": 2.0 + }, + { + "id": "droneci-access-token", + "description": "Detected a Droneci Access Token, potentially compromising continuous integration and deployment workflows.", + "pattern": "[\\w.-]{0,50}?(?:droneci)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "droneci" + ], + "minEntropy": 0.0 + }, + { + "id": "dropbox-api-token", + "description": "Identified a Dropbox API secret, which could lead to unauthorized file access and data breaches in Dropbox storage.", + "pattern": "[\\w.-]{0,50}?(?:dropbox)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{15})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "dropbox" + ], + "minEntropy": 0.0 + }, + { + "id": "dropbox-long-lived-api-token", + "description": "Found a Dropbox long-lived API token, risking prolonged unauthorized access to cloud storage and sensitive data.", + "pattern": "[\\w.-]{0,50}?(?:dropbox)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{11}(AAAAAAAAAA)[a-z0-9\\-_=]{43})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "dropbox" + ], + "minEntropy": 0.0 + }, + { + "id": "dropbox-short-lived-api-token", + "description": "Discovered a Dropbox short-lived API token, posing a risk of temporary but potentially harmful data access and manipulation.", + "pattern": "[\\w.-]{0,50}?(?:dropbox)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(sl\\.[a-z0-9\\-=_]{135})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "dropbox" + ], + "minEntropy": 0.0 + }, + { + "id": "duffel-api-token", + "description": "Uncovered a Duffel API token, which may compromise travel platform integrations and sensitive customer data.", + "pattern": "duffel_(?:test|live)_[a-z0-9_\\-=]{43}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "duffel_" + ], + "minEntropy": 2.0 + }, + { + "id": "dynatrace-api-token", + "description": "Detected a Dynatrace API token, potentially risking application performance monitoring and data exposure.", + "pattern": "dt0c01\\.[a-z0-9]{24}\\.[a-z0-9]{64}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "dt0c01." + ], + "minEntropy": 4.0 + }, + { + "id": "easypost-api-token", + "description": "Identified an EasyPost API token, which could lead to unauthorized postal and shipment service access and data exposure.", + "pattern": "\\bEZAK[a-z0-9]{54}\\b", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "ezak" + ], + "minEntropy": 2.0 + }, + { + "id": "easypost-test-api-token", + "description": "Detected an EasyPost test API token, risking exposure of test environments and potentially sensitive shipment data.", + "pattern": "\\bEZTK[a-z0-9]{54}\\b", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "eztk" + ], + "minEntropy": 2.0 + }, + { + "id": "facebook-access-token", + "description": "Discovered a Facebook Access Token, posing a risk of unauthorized access to Facebook accounts and personal data exposure.", + "pattern": "\\b(\\d{15,16}(\\||%)[0-9a-z\\-_]{27,40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "facebook" + ], + "minEntropy": 3.0 + }, + { + "id": "facebook-page-access-token", + "description": "Discovered a Facebook Page Access Token, posing a risk of unauthorized access to Facebook accounts and personal data exposure.", + "pattern": "\\b(EAA[MC][a-z0-9]{100,})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "eaam", + "eaac" + ], + "minEntropy": 4.0 + }, + { + "id": "facebook-secret", + "description": "Discovered a Facebook Application secret, posing a risk of unauthorized access to Facebook accounts and personal data exposure.", + "pattern": "[\\w.-]{0,50}?(?:facebook)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "facebook" + ], + "minEntropy": 3.0 + }, + { + "id": "fastly-api-token", + "description": "Uncovered a Fastly API key, which may compromise CDN and edge cloud services, leading to content delivery and security issues.", + "pattern": "[\\w.-]{0,50}?(?:fastly)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "fastly" + ], + "minEntropy": 0.0 + }, + { + "id": "finicity-api-token", + "description": "Detected a Finicity API token, potentially risking financial data access and unauthorized financial operations.", + "pattern": "[\\w.-]{0,50}?(?:finicity)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "finicity" + ], + "minEntropy": 0.0 + }, + { + "id": "finicity-client-secret", + "description": "Identified a Finicity Client Secret, which could lead to compromised financial service integrations and data breaches.", + "pattern": "[\\w.-]{0,50}?(?:finicity)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{20})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "finicity" + ], + "minEntropy": 0.0 + }, + { + "id": "finnhub-access-token", + "description": "Found a Finnhub Access Token, risking unauthorized access to financial market data and analytics.", + "pattern": "[\\w.-]{0,50}?(?:finnhub)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{20})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "finnhub" + ], + "minEntropy": 0.0 + }, + { + "id": "flickr-access-token", + "description": "Discovered a Flickr Access Token, posing a risk of unauthorized photo management and potential data leakage.", + "pattern": "[\\w.-]{0,50}?(?:flickr)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "flickr" + ], + "minEntropy": 0.0 + }, + { + "id": "flutterwave-encryption-key", + "description": "Uncovered a Flutterwave Encryption Key, which may compromise payment processing and sensitive financial information.", + "pattern": "FLWSECK_TEST-[a-h0-9]{12}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "flwseck_test" + ], + "minEntropy": 2.0 + }, + { + "id": "flutterwave-public-key", + "description": "Detected a Finicity Public Key, potentially exposing public cryptographic operations and integrations.", + "pattern": "FLWPUBK_TEST-[a-h0-9]{32}-X", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "flwpubk_test" + ], + "minEntropy": 2.0 + }, + { + "id": "flutterwave-secret-key", + "description": "Identified a Flutterwave Secret Key, risking unauthorized financial transactions and data breaches.", + "pattern": "FLWSECK_TEST-[a-h0-9]{32}-X", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "flwseck_test" + ], + "minEntropy": 2.0 + }, + { + "id": "flyio-access-token", + "description": "Uncovered a Fly.io API key", + "pattern": "\\b((?:fo1_[\\w-]{43}|fm1[ar]_[a-zA-Z0-9+\\/]{100,}={0,3}|fm2_[a-zA-Z0-9+\\/]{100,}={0,3}))(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "fo1_", + "fm1", + "fm2_" + ], + "minEntropy": 4.0 + }, + { + "id": "frameio-api-token", + "description": "Found a Frame.io API token, potentially compromising video collaboration and project management.", + "pattern": "fio-u-[a-z0-9\\-_=]{64}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "fio-u-" + ], + "minEntropy": 0.0 + }, + { + "id": "freemius-secret-key", + "description": "Detected a Freemius secret key, potentially exposing sensitive information.", + "pattern": "[\"']secret_key[\"']\\s*=>\\s*[\"'](sk_[\\S]{29})[\"']", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "secret_key" + ], + "minEntropy": 0.0 + }, + { + "id": "freshbooks-access-token", + "description": "Discovered a Freshbooks Access Token, posing a risk to accounting software access and sensitive financial data exposure.", + "pattern": "[\\w.-]{0,50}?(?:freshbooks)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "freshbooks" + ], + "minEntropy": 0.0 + }, + { + "id": "gcp-api-key", + "description": "Uncovered a GCP API key, which could lead to unauthorized access to Google Cloud services and data breaches.", + "pattern": "\\b(AIza[\\w-]{35})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "aiza" + ], + "minEntropy": 4.0 + }, + { + "id": "github-app-token", + "description": "Identified a GitHub App Token, which may compromise GitHub application integrations and source code security.", + "pattern": "(?:ghu|ghs)_[0-9a-zA-Z]{36}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "ghu_", + "ghs_" + ], + "minEntropy": 3.0 + }, + { + "id": "github-fine-grained-pat", + "description": "Found a GitHub Fine-Grained Personal Access Token, risking unauthorized repository access and code manipulation.", + "pattern": "github_pat_\\w{82}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "github_pat_" + ], + "minEntropy": 3.0 + }, + { + "id": "github-oauth", + "description": "Discovered a GitHub OAuth Access Token, posing a risk of compromised GitHub account integrations and data leaks.", + "pattern": "gho_[0-9a-zA-Z]{36}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "gho_" + ], + "minEntropy": 3.0 + }, + { + "id": "github-pat", + "description": "Uncovered a GitHub Personal Access Token, potentially leading to unauthorized repository access and sensitive content exposure.", + "pattern": "ghp_[0-9a-zA-Z]{36}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "ghp_" + ], + "minEntropy": 3.0 + }, + { + "id": "github-refresh-token", + "description": "Detected a GitHub Refresh Token, which could allow prolonged unauthorized access to GitHub services.", + "pattern": "ghr_[0-9a-zA-Z]{36}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "ghr_" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-cicd-job-token", + "description": "Identified a GitLab CI/CD Job Token, potential access to projects and some APIs on behalf of a user while the CI job is running.", + "pattern": "glcbt-[0-9a-zA-Z]{1,5}_[0-9a-zA-Z_-]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glcbt-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-deploy-token", + "description": "Identified a GitLab Deploy Token, risking access to repositories, packages and containers with write access.", + "pattern": "gldt-[0-9a-zA-Z_\\-]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "gldt-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-feature-flag-client-token", + "description": "Identified a GitLab feature flag client token, risks exposing user lists and features flags used by an application.", + "pattern": "glffct-[0-9a-zA-Z_\\-]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glffct-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-feed-token", + "description": "Identified a GitLab feed token, risking exposure of user data.", + "pattern": "glft-[0-9a-zA-Z_\\-]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glft-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-incoming-mail-token", + "description": "Identified a GitLab incoming mail token, risking manipulation of data sent by mail.", + "pattern": "glimt-[0-9a-zA-Z_\\-]{25}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glimt-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-kubernetes-agent-token", + "description": "Identified a GitLab Kubernetes Agent token, risking access to repos and registry of projects connected via agent.", + "pattern": "glagent-[0-9a-zA-Z_\\-]{50}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glagent-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-oauth-app-secret", + "description": "Identified a GitLab OIDC Application Secret, risking access to apps using GitLab as authentication provider.", + "pattern": "gloas-[0-9a-zA-Z_\\-]{64}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "gloas-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-pat", + "description": "Identified a GitLab Personal Access Token, risking unauthorized access to GitLab repositories and codebase exposure.", + "pattern": "glpat-[\\w-]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glpat-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-pat-routable", + "description": "Identified a GitLab Personal Access Token (routable), risking unauthorized access to GitLab repositories and codebase exposure.", + "pattern": "\\bglpat-[0-9a-zA-Z_-]{27,300}\\.[0-9a-z]{2}[0-9a-z]{7}\\b", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glpat-" + ], + "minEntropy": 4.0 + }, + { + "id": "gitlab-ptt", + "description": "Found a GitLab Pipeline Trigger Token, potentially compromising continuous integration workflows and project security.", + "pattern": "glptt-[0-9a-f]{40}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glptt-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-rrt", + "description": "Discovered a GitLab Runner Registration Token, posing a risk to CI/CD pipeline integrity and unauthorized access.", + "pattern": "GR1348941[\\w-]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "gr1348941" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-runner-authentication-token", + "description": "Discovered a GitLab Runner Authentication Token, posing a risk to CI/CD pipeline integrity and unauthorized access.", + "pattern": "glrt-[0-9a-zA-Z_\\-]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glrt-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-runner-authentication-token-routable", + "description": "Discovered a GitLab Runner Authentication Token (Routable), posing a risk to CI/CD pipeline integrity and unauthorized access.", + "pattern": "\\bglrt-t\\d_[0-9a-zA-Z_\\-]{27,300}\\.[0-9a-z]{2}[0-9a-z]{7}\\b", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glrt-" + ], + "minEntropy": 4.0 + }, + { + "id": "gitlab-scim-token", + "description": "Discovered a GitLab SCIM Token, posing a risk to unauthorized access for a organization or instance.", + "pattern": "glsoat-[0-9a-zA-Z_\\-]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "glsoat-" + ], + "minEntropy": 3.0 + }, + { + "id": "gitlab-session-cookie", + "description": "Discovered a GitLab Session Cookie, posing a risk to unauthorized access to a user account.", + "pattern": "_gitlab_session=[0-9a-z]{32}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "_gitlab_session=" + ], + "minEntropy": 3.0 + }, + { + "id": "gitter-access-token", + "description": "Uncovered a Gitter Access Token, which may lead to unauthorized access to chat and communication services.", + "pattern": "[\\w.-]{0,50}?(?:gitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9_-]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "gitter" + ], + "minEntropy": 0.0 + }, + { + "id": "gocardless-api-token", + "description": "Detected a GoCardless API token, potentially risking unauthorized direct debit payment operations and financial data exposure.", + "pattern": "[\\w.-]{0,50}?(?:gocardless)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(live_[a-z0-9\\-_=]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "live_", + "gocardless" + ], + "minEntropy": 0.0 + }, + { + "id": "grafana-api-key", + "description": "Identified a Grafana API key, which could compromise monitoring dashboards and sensitive data analytics.", + "pattern": "\\b(eyJrIjoi[A-Za-z0-9]{70,400}={0,3})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "eyjrijoi" + ], + "minEntropy": 3.0 + }, + { + "id": "grafana-cloud-api-token", + "description": "Found a Grafana cloud API token, risking unauthorized access to cloud-based monitoring services and data exposure.", + "pattern": "\\b(glc_[A-Za-z0-9+/]{32,400}={0,3})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "glc_" + ], + "minEntropy": 3.0 + }, + { + "id": "grafana-service-account-token", + "description": "Discovered a Grafana service account token, posing a risk of compromised monitoring services and data integrity.", + "pattern": "\\b(glsa_[A-Za-z0-9]{32}_[A-Fa-f0-9]{8})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "glsa_" + ], + "minEntropy": 3.0 + }, + { + "id": "harness-api-key", + "description": "Identified a Harness Access Token (PAT or SAT), risking unauthorized access to a Harness account.", + "pattern": "(?:pat|sat)\\.[a-zA-Z0-9_-]{22}\\.[a-zA-Z0-9]{24}\\.[a-zA-Z0-9]{20}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "pat.", + "sat." + ], + "minEntropy": 0.0 + }, + { + "id": "hashicorp-tf-password", + "description": "Identified a HashiCorp Terraform password field, risking unauthorized infrastructure configuration and security breaches.", + "pattern": "[\\w.-]{0,50}?(?:administrator_login_password|password)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(\"[a-z0-9=_\\-]{8,20}\")(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "administrator_login_password", + "password" + ], + "minEntropy": 2.0 + }, + { + "id": "heroku-api-key", + "description": "Detected a Heroku API Key, potentially compromising cloud application deployments and operational security.", + "pattern": "[\\w.-]{0,50}?(?:heroku)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "heroku" + ], + "minEntropy": 0.0 + }, + { + "id": "heroku-api-key-v2", + "description": "Detected a Heroku API Key, potentially compromising cloud application deployments and operational security.", + "pattern": "\\b((HRKU-AA[0-9a-zA-Z_-]{58}))(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "hrku-aa" + ], + "minEntropy": 4.0 + }, + { + "id": "hubspot-api-key", + "description": "Found a HubSpot API Token, posing a risk to CRM data integrity and unauthorized marketing operations.", + "pattern": "[\\w.-]{0,50}?(?:hubspot)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "hubspot" + ], + "minEntropy": 0.0 + }, + { + "id": "huggingface-access-token", + "description": "Discovered a Hugging Face Access token, which could lead to unauthorized access to AI models and sensitive data.", + "pattern": "\\b(hf_(?:[a-z]{34}))(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "hf_" + ], + "minEntropy": 2.0 + }, + { + "id": "huggingface-organization-api-token", + "description": "Uncovered a Hugging Face Organization API token, potentially compromising AI organization accounts and associated data.", + "pattern": "\\b(api_org_(?:[a-z]{34}))(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "api_org_" + ], + "minEntropy": 2.0 + }, + { + "id": "infracost-api-token", + "description": "Detected an Infracost API Token, risking unauthorized access to cloud cost estimation tools and financial data.", + "pattern": "\\b(ico-[a-zA-Z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "ico-" + ], + "minEntropy": 3.0 + }, + { + "id": "intercom-api-key", + "description": "Identified an Intercom API Token, which could compromise customer communication channels and data privacy.", + "pattern": "[\\w.-]{0,50}?(?:intercom)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{60})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "intercom" + ], + "minEntropy": 0.0 + }, + { + "id": "intra42-client-secret", + "description": "Found a Intra42 client secret, which could lead to unauthorized access to the 42School API and sensitive data.", + "pattern": "\\b(s-s4t2(?:ud|af)-[abcdef0123456789]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "intra", + "s-s4t2ud-", + "s-s4t2af-" + ], + "minEntropy": 3.0 + }, + { + "id": "jfrog-api-key", + "description": "Found a JFrog API Key, posing a risk of unauthorized access to software artifact repositories and build pipelines.", + "pattern": "[\\w.-]{0,50}?(?:jfrog|artifactory|bintray|xray)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{73})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "jfrog", + "artifactory", + "bintray", + "xray" + ], + "minEntropy": 0.0 + }, + { + "id": "jfrog-identity-token", + "description": "Discovered a JFrog Identity Token, potentially compromising access to JFrog services and sensitive software artifacts.", + "pattern": "[\\w.-]{0,50}?(?:jfrog|artifactory|bintray|xray)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "jfrog", + "artifactory", + "bintray", + "xray" + ], + "minEntropy": 0.0 + }, + { + "id": "jwt", + "description": "Uncovered a JSON Web Token, which may lead to unauthorized access to web applications and sensitive user data.", + "pattern": "\\b(ey[a-zA-Z0-9]{17,}\\.ey[a-zA-Z0-9\\/\\\\_-]{17,}\\.(?:[a-zA-Z0-9\\/\\\\_-]{10,}={0,2})?)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "ey" + ], + "minEntropy": 3.0 + }, + { + "id": "kraken-access-token", + "description": "Identified a Kraken Access Token, potentially compromising cryptocurrency trading accounts and financial security.", + "pattern": "[\\w.-]{0,50}?(?:kraken)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9\\/=_\\+\\-]{80,90})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "kraken" + ], + "minEntropy": 0.0 + }, + { + "id": "kubernetes-secret-yaml", + "description": "Possible Kubernetes Secret detected, posing a risk of leaking credentials/tokens from your deployments", + "pattern": "(?:\\bkind:[ \\t]*[\"']?\\bsecret\\b[\"']?(?:.){0,200}?\\bdata:(?:.){0,100}?\\s+([\\w.-]+:(?:[ \\t]*(?:\\||>[-+]?)\\s+)?[ \\t]*(?:[\"']?[a-z0-9+/]{10,}={0,3}[\"']?|\\{\\{[ \\t\\w\"|$:=,.-]+}}|\"\"|''))|\\bdata:(?:.){0,100}?\\s+([\\w.-]+:(?:[ \\t]*(?:\\||>[-+]?)\\s+)?[ \\t]*(?:[\"']?[a-z0-9+/]{10,}={0,3}[\"']?|\\{\\{[ \\t\\w\"|$:=,.-]+}}|\"\"|''))(?:.){0,200}?\\bkind:[ \\t]*[\"']?\\bsecret\\b[\"']?)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "secret" + ], + "minEntropy": 0.0 + }, + { + "id": "kucoin-access-token", + "description": "Found a Kucoin Access Token, risking unauthorized access to cryptocurrency exchange services and transactions.", + "pattern": "[\\w.-]{0,50}?(?:kucoin)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{24})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "kucoin" + ], + "minEntropy": 0.0 + }, + { + "id": "kucoin-secret-key", + "description": "Discovered a Kucoin Secret Key, which could lead to compromised cryptocurrency operations and financial data breaches.", + "pattern": "[\\w.-]{0,50}?(?:kucoin)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "kucoin" + ], + "minEntropy": 0.0 + }, + { + "id": "launchdarkly-access-token", + "description": "Uncovered a Launchdarkly Access Token, potentially compromising feature flag management and application functionality.", + "pattern": "[\\w.-]{0,50}?(?:launchdarkly)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "launchdarkly" + ], + "minEntropy": 0.0 + }, + { + "id": "linear-api-key", + "description": "Detected a Linear API Token, posing a risk to project management tools and sensitive task data.", + "pattern": "lin_api_[a-z0-9]{40}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "lin_api_" + ], + "minEntropy": 2.0 + }, + { + "id": "linear-client-secret", + "description": "Identified a Linear Client Secret, which may compromise secure integrations and sensitive project management data.", + "pattern": "[\\w.-]{0,50}?(?:linear)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "linear" + ], + "minEntropy": 2.0 + }, + { + "id": "linkedin-client-id", + "description": "Found a LinkedIn Client ID, risking unauthorized access to LinkedIn integrations and professional data exposure.", + "pattern": "[\\w.-]{0,50}?(?:linked[_-]?in)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{14})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "linkedin", + "linked_in", + "linked-in" + ], + "minEntropy": 2.0 + }, + { + "id": "linkedin-client-secret", + "description": "Discovered a LinkedIn Client secret, potentially compromising LinkedIn application integrations and user data.", + "pattern": "[\\w.-]{0,50}?(?:linked[_-]?in)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "linkedin", + "linked_in", + "linked-in" + ], + "minEntropy": 2.0 + }, + { + "id": "lob-api-key", + "description": "Uncovered a Lob API Key, which could lead to unauthorized access to mailing and address verification services.", + "pattern": "[\\w.-]{0,50}?(?:lob)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}((live|test)_[a-f0-9]{35})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "test_", + "live_" + ], + "minEntropy": 0.0 + }, + { + "id": "lob-pub-api-key", + "description": "Detected a Lob Publishable API Key, posing a risk of exposing mail and print service integrations.", + "pattern": "[\\w.-]{0,50}?(?:lob)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}((test|live)_pub_[a-f0-9]{31})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "test_pub", + "live_pub", + "_pub" + ], + "minEntropy": 0.0 + }, + { + "id": "looker-client-id", + "description": "Found a Looker Client ID, risking unauthorized access to a Looker account and exposing sensitive data.", + "pattern": "[\\w.-]{0,50}?(?:looker)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{20})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "looker" + ], + "minEntropy": 0.0 + }, + { + "id": "looker-client-secret", + "description": "Found a Looker Client Secret, risking unauthorized access to a Looker account and exposing sensitive data.", + "pattern": "[\\w.-]{0,50}?(?:looker)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{24})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "looker" + ], + "minEntropy": 0.0 + }, + { + "id": "mailchimp-api-key", + "description": "Identified a Mailchimp API key, potentially compromising email marketing campaigns and subscriber data.", + "pattern": "[\\w.-]{0,50}?(?:MailchimpSDK.initialize|mailchimp)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{32}-us\\d\\d)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "mailchimp" + ], + "minEntropy": 0.0 + }, + { + "id": "mailgun-private-api-token", + "description": "Found a Mailgun private API token, risking unauthorized email service operations and data breaches.", + "pattern": "[\\w.-]{0,50}?(?:mailgun)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(key-[a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "mailgun" + ], + "minEntropy": 0.0 + }, + { + "id": "mailgun-pub-key", + "description": "Discovered a Mailgun public validation key, which could expose email verification processes and associated data.", + "pattern": "[\\w.-]{0,50}?(?:mailgun)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(pubkey-[a-f0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "mailgun" + ], + "minEntropy": 0.0 + }, + { + "id": "mailgun-signing-key", + "description": "Uncovered a Mailgun webhook signing key, potentially compromising email automation and data integrity.", + "pattern": "[\\w.-]{0,50}?(?:mailgun)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-h0-9]{32}-[a-h0-9]{8}-[a-h0-9]{8})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "mailgun" + ], + "minEntropy": 0.0 + }, + { + "id": "mapbox-api-token", + "description": "Detected a MapBox API token, posing a risk to geospatial services and sensitive location data exposure.", + "pattern": "[\\w.-]{0,50}?(?:mapbox)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(pk\\.[a-z0-9]{60}\\.[a-z0-9]{22})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "mapbox" + ], + "minEntropy": 0.0 + }, + { + "id": "mattermost-access-token", + "description": "Identified a Mattermost Access Token, which may compromise team communication channels and data privacy.", + "pattern": "[\\w.-]{0,50}?(?:mattermost)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{26})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "mattermost" + ], + "minEntropy": 0.0 + }, + { + "id": "maxmind-license-key", + "description": "Discovered a potential MaxMind license key.", + "pattern": "\\b([A-Za-z0-9]{6}_[A-Za-z0-9]{29}_mmk)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "_mmk" + ], + "minEntropy": 4.0 + }, + { + "id": "messagebird-api-token", + "description": "Found a MessageBird API token, risking unauthorized access to communication platforms and message data.", + "pattern": "[\\w.-]{0,50}?(?:message[_-]?bird)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{25})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "messagebird", + "message-bird", + "message_bird" + ], + "minEntropy": 0.0 + }, + { + "id": "messagebird-client-id", + "description": "Discovered a MessageBird client ID, potentially compromising API integrations and sensitive communication data.", + "pattern": "[\\w.-]{0,50}?(?:message[_-]?bird)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "messagebird", + "message-bird", + "message_bird" + ], + "minEntropy": 0.0 + }, + { + "id": "microsoft-teams-webhook", + "description": "Uncovered a Microsoft Teams Webhook, which could lead to unauthorized access to team collaboration tools and data leaks.", + "pattern": "https://[a-z0-9]+\\.webhook\\.office\\.com/webhookb2/[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}@[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}/IncomingWebhook/[a-z0-9]{32}/[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "webhook.office.com", + "webhookb2", + "incomingwebhook" + ], + "minEntropy": 0.0 + }, + { + "id": "netlify-access-token", + "description": "Detected a Netlify Access Token, potentially compromising web hosting services and site management.", + "pattern": "[\\w.-]{0,50}?(?:netlify)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{40,46})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "netlify" + ], + "minEntropy": 0.0 + }, + { + "id": "new-relic-browser-api-token", + "description": "Identified a New Relic ingest browser API token, risking unauthorized access to application performance data and analytics.", + "pattern": "[\\w.-]{0,50}?(?:new-relic|newrelic|new_relic)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(NRJS-[a-f0-9]{19})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "nrjs-" + ], + "minEntropy": 0.0 + }, + { + "id": "new-relic-insert-key", + "description": "Discovered a New Relic insight insert key, compromising data injection into the platform.", + "pattern": "[\\w.-]{0,50}?(?:new-relic|newrelic|new_relic)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(NRII-[a-z0-9-]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "nrii-" + ], + "minEntropy": 0.0 + }, + { + "id": "new-relic-user-api-id", + "description": "Found a New Relic user API ID, posing a risk to application monitoring services and data integrity.", + "pattern": "[\\w.-]{0,50}?(?:new-relic|newrelic|new_relic)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "new-relic", + "newrelic", + "new_relic" + ], + "minEntropy": 0.0 + }, + { + "id": "new-relic-user-api-key", + "description": "Discovered a New Relic user API Key, which could lead to compromised application insights and performance monitoring.", + "pattern": "[\\w.-]{0,50}?(?:new-relic|newrelic|new_relic)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(NRAK-[a-z0-9]{27})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "nrak" + ], + "minEntropy": 0.0 + }, + { + "id": "notion-api-token", + "description": "Notion API token", + "pattern": "\\b(ntn_[0-9]{11}[A-Za-z0-9]{32}[A-Za-z0-9]{3})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "ntn_" + ], + "minEntropy": 4.0 + }, + { + "id": "npm-access-token", + "description": "Uncovered an npm access token, potentially compromising package management and code repository access.", + "pattern": "\\b(npm_[a-z0-9]{36})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "npm_" + ], + "minEntropy": 2.0 + }, + { + "id": "nuget-config-password", + "description": "Identified a password within a Nuget config file, potentially compromising package management access.", + "pattern": "", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9=_\\-]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "nytimes", + "new-york-times", + "newyorktimes" + ], + "minEntropy": 0.0 + }, + { + "id": "octopus-deploy-api-key", + "description": "Discovered a potential Octopus Deploy API key, risking application deployments and operational security.", + "pattern": "\\b(API-[A-Z0-9]{26})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "api-" + ], + "minEntropy": 3.0 + }, + { + "id": "openai-api-key", + "description": "Found an OpenAI API Key, posing a risk of unauthorized access to AI services and data manipulation.", + "pattern": "\\b(sk-(?:proj|svcacct|admin)-(?:[A-Za-z0-9_-]{74}|[A-Za-z0-9_-]{58})T3BlbkFJ(?:[A-Za-z0-9_-]{74}|[A-Za-z0-9_-]{58})\\b|sk-[a-zA-Z0-9]{20}T3BlbkFJ[a-zA-Z0-9]{20})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "t3blbkfj" + ], + "minEntropy": 3.0 + }, + { + "id": "openshift-user-token", + "description": "Found an OpenShift user token, potentially compromising an OpenShift/Kubernetes cluster.", + "pattern": "\\b(sha256~[\\w-]{43})(?:[^\\w-]|\\z)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sha256~" + ], + "minEntropy": 3.5 + }, + { + "id": "perplexity-api-key", + "description": "Detected a Perplexity API key, which could lead to unauthorized access to Perplexity AI services and data exposure.", + "pattern": "\\b(pplx-[a-zA-Z0-9]{48})(?:[\\x60'\"\\s;]|\\\\[nr]|$|\\b)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "pplx-" + ], + "minEntropy": 4.0 + }, + { + "id": "plaid-api-token", + "description": "Discovered a Plaid API Token, potentially compromising financial data aggregation and banking services.", + "pattern": "[\\w.-]{0,50}?(?:plaid)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(access-(?:sandbox|development|production)-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "plaid" + ], + "minEntropy": 0.0 + }, + { + "id": "plaid-client-id", + "description": "Uncovered a Plaid Client ID, which could lead to unauthorized financial service integrations and data breaches.", + "pattern": "[\\w.-]{0,50}?(?:plaid)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{24})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "plaid" + ], + "minEntropy": 3.5 + }, + { + "id": "plaid-secret-key", + "description": "Detected a Plaid Secret key, risking unauthorized access to financial accounts and sensitive transaction data.", + "pattern": "[\\w.-]{0,50}?(?:plaid)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{30})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "plaid" + ], + "minEntropy": 3.5 + }, + { + "id": "planetscale-api-token", + "description": "Identified a PlanetScale API token, potentially compromising database management and operations.", + "pattern": "\\b(pscale_tkn_[\\w=\\.-]{32,64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "pscale_tkn_" + ], + "minEntropy": 3.0 + }, + { + "id": "planetscale-oauth-token", + "description": "Found a PlanetScale OAuth token, posing a risk to database access control and sensitive data integrity.", + "pattern": "\\b(pscale_oauth_[\\w=\\.-]{32,64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "pscale_oauth_" + ], + "minEntropy": 3.0 + }, + { + "id": "planetscale-password", + "description": "Discovered a PlanetScale password, which could lead to unauthorized database operations and data breaches.", + "pattern": "\\b(pscale_pw_[\\w=\\.-]{32,64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "pscale_pw_" + ], + "minEntropy": 3.0 + }, + { + "id": "postman-api-token", + "description": "Uncovered a Postman API token, potentially compromising API testing and development workflows.", + "pattern": "\\b(PMAK-[a-f0-9]{24}\\-[a-f0-9]{34})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "pmak-" + ], + "minEntropy": 3.0 + }, + { + "id": "prefect-api-token", + "description": "Detected a Prefect API token, risking unauthorized access to workflow management and automation services.", + "pattern": "\\b(pnu_[a-zA-Z0-9]{36})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "pnu_" + ], + "minEntropy": 2.0 + }, + { + "id": "private-key", + "description": "Identified a Private Key, which may compromise cryptographic security and sensitive data encryption.", + "pattern": "-----BEGIN[ A-Z0-9_-]{0,100}PRIVATE KEY(?: BLOCK)?-----[\\s\\S-]{64,}?KEY(?: BLOCK)?-----", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "-----begin" + ], + "minEntropy": 0.0 + }, + { + "id": "privateai-api-token", + "description": "Identified a PrivateAI Token, posing a risk of unauthorized access to AI services and data manipulation.", + "pattern": "[\\w.-]{0,50}?(?:[\\w.-]{0,50}?(?:private[_-]?ai)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3})(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "privateai", + "private_ai", + "private-ai" + ], + "minEntropy": 3.0 + }, + { + "id": "pulumi-api-token", + "description": "Found a Pulumi API token, posing a risk to infrastructure as code services and cloud resource management.", + "pattern": "\\b(pul-[a-f0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "pul-" + ], + "minEntropy": 2.0 + }, + { + "id": "pypi-upload-token", + "description": "Discovered a PyPI upload token, potentially compromising Python package distribution and repository integrity.", + "pattern": "pypi-AgEIcHlwaS5vcmc[\\w-]{50,1000}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "pypi-ageichlwas5vcmc" + ], + "minEntropy": 3.0 + }, + { + "id": "rapidapi-access-token", + "description": "Uncovered a RapidAPI Access Token, which could lead to unauthorized access to various APIs and data services.", + "pattern": "[\\w.-]{0,50}?(?:rapidapi)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9_-]{50})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "rapidapi" + ], + "minEntropy": 0.0 + }, + { + "id": "readme-api-token", + "description": "Detected a Readme API token, risking unauthorized documentation management and content exposure.", + "pattern": "\\b(rdme_[a-z0-9]{70})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "rdme_" + ], + "minEntropy": 2.0 + }, + { + "id": "rubygems-api-token", + "description": "Identified a Rubygem API token, potentially compromising Ruby library distribution and package management.", + "pattern": "\\b(rubygems_[a-f0-9]{48})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "rubygems_" + ], + "minEntropy": 2.0 + }, + { + "id": "scalingo-api-token", + "description": "Found a Scalingo API token, posing a risk to cloud platform services and application deployment security.", + "pattern": "\\b(tk-us-[\\w-]{48})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "tk-us-" + ], + "minEntropy": 2.0 + }, + { + "id": "sendbird-access-id", + "description": "Discovered a Sendbird Access ID, which could compromise chat and messaging platform integrations.", + "pattern": "[\\w.-]{0,50}?(?:sendbird)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "sendbird" + ], + "minEntropy": 0.0 + }, + { + "id": "sendbird-access-token", + "description": "Uncovered a Sendbird Access Token, potentially risking unauthorized access to communication services and user data.", + "pattern": "[\\w.-]{0,50}?(?:sendbird)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "sendbird" + ], + "minEntropy": 0.0 + }, + { + "id": "sendgrid-api-token", + "description": "Detected a SendGrid API token, posing a risk of unauthorized email service operations and data exposure.", + "pattern": "\\b(SG\\.[a-z0-9=_\\-\\.]{66})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "sg." + ], + "minEntropy": 2.0 + }, + { + "id": "sendinblue-api-token", + "description": "Identified a Sendinblue API token, which may compromise email marketing services and subscriber data privacy.", + "pattern": "\\b(xkeysib-[a-f0-9]{64}\\-[a-z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "xkeysib-" + ], + "minEntropy": 2.0 + }, + { + "id": "sentry-access-token", + "description": "Found a Sentry.io Access Token (old format), risking unauthorized access to error tracking services and sensitive application data.", + "pattern": "[\\w.-]{0,50}?(?:sentry)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "sentry" + ], + "minEntropy": 3.0 + }, + { + "id": "sentry-org-token", + "description": "Found a Sentry.io Organization Token, risking unauthorized access to error tracking services and sensitive application data.", + "pattern": "\\bsntrys_eyJpYXQiO[a-zA-Z0-9+/]{10,200}(?:LCJyZWdpb25fdXJs|InJlZ2lvbl91cmwi|cmVnaW9uX3VybCI6)[a-zA-Z0-9+/]{10,200}={0,2}_[a-zA-Z0-9+/]{43}(?:[^a-zA-Z0-9+/]|\\z)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sntrys_eyjpyxqio" + ], + "minEntropy": 4.5 + }, + { + "id": "sentry-user-token", + "description": "Found a Sentry.io User Token, risking unauthorized access to error tracking services and sensitive application data.", + "pattern": "\\b(sntryu_[a-f0-9]{64})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sntryu_" + ], + "minEntropy": 3.5 + }, + { + "id": "settlemint-application-access-token", + "description": "Found a Settlemint Application Access Token.", + "pattern": "\\b(sm_aat_[a-zA-Z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sm_aat" + ], + "minEntropy": 3.0 + }, + { + "id": "settlemint-personal-access-token", + "description": "Found a Settlemint Personal Access Token.", + "pattern": "\\b(sm_pat_[a-zA-Z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sm_pat" + ], + "minEntropy": 3.0 + }, + { + "id": "settlemint-service-access-token", + "description": "Found a Settlemint Service Access Token.", + "pattern": "\\b(sm_sat_[a-zA-Z0-9]{16})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sm_sat" + ], + "minEntropy": 3.0 + }, + { + "id": "shippo-api-token", + "description": "Discovered a Shippo API token, potentially compromising shipping services and customer order data.", + "pattern": "\\b(shippo_(?:live|test)_[a-fA-F0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "shippo_" + ], + "minEntropy": 2.0 + }, + { + "id": "shopify-access-token", + "description": "Uncovered a Shopify access token, which could lead to unauthorized e-commerce platform access and data breaches.", + "pattern": "shpat_[a-fA-F0-9]{32}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "shpat_" + ], + "minEntropy": 2.0 + }, + { + "id": "shopify-custom-access-token", + "description": "Detected a Shopify custom access token, potentially compromising custom app integrations and e-commerce data security.", + "pattern": "shpca_[a-fA-F0-9]{32}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "shpca_" + ], + "minEntropy": 2.0 + }, + { + "id": "shopify-private-app-access-token", + "description": "Identified a Shopify private app access token, risking unauthorized access to private app data and store operations.", + "pattern": "shppa_[a-fA-F0-9]{32}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "shppa_" + ], + "minEntropy": 2.0 + }, + { + "id": "shopify-shared-secret", + "description": "Found a Shopify shared secret, posing a risk to application authentication and e-commerce platform security.", + "pattern": "shpss_[a-fA-F0-9]{32}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "shpss_" + ], + "minEntropy": 2.0 + }, + { + "id": "sidekiq-secret", + "description": "Discovered a Sidekiq Secret, which could lead to compromised background job processing and application data breaches.", + "pattern": "[\\w.-]{0,50}?(?:BUNDLE_ENTERPRISE__CONTRIBSYS__COM|BUNDLE_GEMS__CONTRIBSYS__COM)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-f0-9]{8}:[a-f0-9]{8})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "bundle_enterprise__contribsys__com", + "bundle_gems__contribsys__com" + ], + "minEntropy": 0.0 + }, + { + "id": "sidekiq-sensitive-url", + "description": "Uncovered a Sidekiq Sensitive URL, potentially exposing internal job queues and sensitive operation details.", + "pattern": "\\bhttps?://([a-f0-9]{8}:[a-f0-9]{8})@(?:gems.contribsys.com|enterprise.contribsys.com)(?:[\\/|\\#|\\?|:]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "gems.contribsys.com", + "enterprise.contribsys.com" + ], + "minEntropy": 0.0 + }, + { + "id": "slack-app-token", + "description": "Detected a Slack App-level token, risking unauthorized access to Slack applications and workspace data.", + "pattern": "xapp-\\d-[A-Z0-9]+-\\d+-[a-z0-9]+", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "xapp" + ], + "minEntropy": 2.0 + }, + { + "id": "slack-bot-token", + "description": "Identified a Slack Bot token, which may compromise bot integrations and communication channel security.", + "pattern": "xoxb-[0-9]{10,13}-[0-9]{10,13}[a-zA-Z0-9-]*", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "xoxb" + ], + "minEntropy": 3.0 + }, + { + "id": "slack-config-access-token", + "description": "Found a Slack Configuration access token, posing a risk to workspace configuration and sensitive data access.", + "pattern": "xoxe.xox[bp]-\\d-[A-Z0-9]{163,166}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "xoxe.xoxb-", + "xoxe.xoxp-" + ], + "minEntropy": 2.0 + }, + { + "id": "slack-config-refresh-token", + "description": "Discovered a Slack Configuration refresh token, potentially allowing prolonged unauthorized access to configuration settings.", + "pattern": "xoxe-\\d-[A-Z0-9]{146}", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "xoxe-" + ], + "minEntropy": 2.0 + }, + { + "id": "slack-legacy-bot-token", + "description": "Uncovered a Slack Legacy bot token, which could lead to compromised legacy bot operations and data exposure.", + "pattern": "xoxb-[0-9]{8,14}-[a-zA-Z0-9]{18,26}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "xoxb" + ], + "minEntropy": 2.0 + }, + { + "id": "slack-legacy-token", + "description": "Detected a Slack Legacy token, risking unauthorized access to older Slack integrations and user data.", + "pattern": "xox[os]-\\d+-\\d+-\\d+-[a-fA-F\\d]+", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "xoxo", + "xoxs" + ], + "minEntropy": 2.0 + }, + { + "id": "slack-legacy-workspace-token", + "description": "Identified a Slack Legacy Workspace token, potentially compromising access to workspace data and legacy features.", + "pattern": "xox[ar]-(?:\\d-)?[0-9a-zA-Z]{8,48}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "xoxa", + "xoxr" + ], + "minEntropy": 2.0 + }, + { + "id": "slack-user-token", + "description": "Found a Slack User token, posing a risk of unauthorized user impersonation and data access within Slack workspaces.", + "pattern": "xox[pe](?:-[0-9]{10,13}){3}-[a-zA-Z0-9-]{28,34}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "xoxp-", + "xoxe-" + ], + "minEntropy": 2.0 + }, + { + "id": "slack-webhook-url", + "description": "Discovered a Slack Webhook, which could lead to unauthorized message posting and data leakage in Slack channels.", + "pattern": "(?:https?://)?hooks.slack.com/(?:services|workflows|triggers)/[A-Za-z0-9+/]{43,56}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "hooks.slack.com" + ], + "minEntropy": 0.0 + }, + { + "id": "snyk-api-token", + "description": "Uncovered a Snyk API token, potentially compromising software vulnerability scanning and code security.", + "pattern": "[\\w.-]{0,50}?(?:snyk[_.-]?(?:(?:api|oauth)[_.-]?)?(?:key|token))(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "snyk" + ], + "minEntropy": 0.0 + }, + { + "id": "sonar-api-token", + "description": "Uncovered a Sonar API token, potentially compromising software vulnerability scanning and code security.", + "pattern": "[\\w.-]{0,50}?(?:sonar[_.-]?(login|token))(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}((?:squ_|sqp_|sqa_)?[a-z0-9=_\\-]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "sonar" + ], + "minEntropy": 0.0 + }, + { + "id": "sourcegraph-access-token", + "description": "Sourcegraph is a code search and navigation engine.", + "pattern": "\\b(\\b(sgp_(?:[a-fA-F0-9]{16}|local)_[a-fA-F0-9]{40}|sgp_[a-fA-F0-9]{40}|[a-fA-F0-9]{40})\\b)(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "sgp_", + "sourcegraph" + ], + "minEntropy": 3.0 + }, + { + "id": "square-access-token", + "description": "Detected a Square Access Token, risking unauthorized payment processing and financial transaction exposure.", + "pattern": "\\b((?:EAAA|sq0atp-)[\\w-]{22,60})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sq0atp-", + "eaaa" + ], + "minEntropy": 2.0 + }, + { + "id": "squarespace-access-token", + "description": "Identified a Squarespace Access Token, which may compromise website management and content control on Squarespace.", + "pattern": "[\\w.-]{0,50}?(?:squarespace)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "squarespace" + ], + "minEntropy": 0.0 + }, + { + "id": "stripe-access-token", + "description": "Found a Stripe Access Token, posing a risk to payment processing services and sensitive financial data.", + "pattern": "\\b((?:sk|rk)_(?:test|live|prod)_[a-zA-Z0-9]{10,99})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sk_test", + "sk_live", + "sk_prod", + "rk_test", + "rk_live", + "rk_prod" + ], + "minEntropy": 2.0 + }, + { + "id": "travisci-access-token", + "description": "Identified a Travis CI Access Token, potentially compromising continuous integration services and codebase security.", + "pattern": "[\\w.-]{0,50}?(?:travis)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{22})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "travis" + ], + "minEntropy": 0.0 + }, + { + "id": "twilio-api-key", + "description": "Found a Twilio API Key, posing a risk to communication services and sensitive customer interaction data.", + "pattern": "SK[0-9a-fA-F]{32}", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "sk" + ], + "minEntropy": 3.0 + }, + { + "id": "twitch-api-token", + "description": "Discovered a Twitch API token, which could compromise streaming services and account integrations.", + "pattern": "[\\w.-]{0,50}?(?:twitch)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{30})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "twitch" + ], + "minEntropy": 0.0 + }, + { + "id": "twitter-access-secret", + "description": "Uncovered a Twitter Access Secret, potentially risking unauthorized Twitter integrations and data breaches.", + "pattern": "[\\w.-]{0,50}?(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{45})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "twitter" + ], + "minEntropy": 0.0 + }, + { + "id": "twitter-access-token", + "description": "Detected a Twitter Access Token, posing a risk of unauthorized account operations and social media data exposure.", + "pattern": "[\\w.-]{0,50}?(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([0-9]{15,25}-[a-zA-Z0-9]{20,40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "twitter" + ], + "minEntropy": 0.0 + }, + { + "id": "twitter-api-key", + "description": "Identified a Twitter API Key, which may compromise Twitter application integrations and user data security.", + "pattern": "[\\w.-]{0,50}?(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{25})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "twitter" + ], + "minEntropy": 0.0 + }, + { + "id": "twitter-api-secret", + "description": "Found a Twitter API Secret, risking the security of Twitter app integrations and sensitive data access.", + "pattern": "[\\w.-]{0,50}?(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{50})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "twitter" + ], + "minEntropy": 0.0 + }, + { + "id": "twitter-bearer-token", + "description": "Discovered a Twitter Bearer Token, potentially compromising API access and data retrieval from Twitter.", + "pattern": "[\\w.-]{0,50}?(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(A{22}[a-zA-Z0-9%]{80,100})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "twitter" + ], + "minEntropy": 0.0 + }, + { + "id": "typeform-api-token", + "description": "Uncovered a Typeform API token, which could lead to unauthorized survey management and data collection.", + "pattern": "[\\w.-]{0,50}?(?:typeform)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(tfp_[a-z0-9\\-_\\.=]{59})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "tfp_" + ], + "minEntropy": 0.0 + }, + { + "id": "vault-batch-token", + "description": "Detected a Vault Batch Token, risking unauthorized access to secret management services and sensitive data.", + "pattern": "\\b(hvb\\.[\\w-]{138,300})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": true, + "isMultiLine": false, + "keywords": [ + "hvb." + ], + "minEntropy": 4.0 + }, + { + "id": "vault-service-token", + "description": "Identified a Vault Service Token, potentially compromising infrastructure security and access to sensitive credentials.", + "pattern": "\\b((?:hvs\\.[\\w-]{90,120}|s\\.(?:[a-z0-9]{24})))(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "hvs.", + "s." + ], + "minEntropy": 3.5 + }, + { + "id": "yandex-access-token", + "description": "Found a Yandex Access Token, posing a risk to Yandex service integrations and user data privacy.", + "pattern": "[\\w.-]{0,50}?(?:yandex)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(t1\\.[A-Z0-9a-z_-]+[=]{0,2}\\.[A-Z0-9a-z_-]{86}[=]{0,2})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "yandex" + ], + "minEntropy": 0.0 + }, + { + "id": "yandex-api-key", + "description": "Discovered a Yandex API Key, which could lead to unauthorized access to Yandex services and data manipulation.", + "pattern": "[\\w.-]{0,50}?(?:yandex)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(AQVN[A-Za-z0-9_\\-]{35,38})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "yandex" + ], + "minEntropy": 0.0 + }, + { + "id": "yandex-aws-access-token", + "description": "Uncovered a Yandex AWS Access Token, potentially compromising cloud resource access and data security on Yandex Cloud.", + "pattern": "[\\w.-]{0,50}?(?:yandex)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}(YC[a-zA-Z0-9_\\-]{38})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "yandex" + ], + "minEntropy": 0.0 + }, + { + "id": "zendesk-secret-key", + "description": "Detected a Zendesk Secret Key, risking unauthorized access to customer support services and sensitive ticketing data.", + "pattern": "[\\w.-]{0,50}?(?:zendesk)(?:[ \\t\\w.-]{0,20})[\\s'\"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'\"\\s=]{0,5}([a-z0-9]{40})(?:[\\x60'\"\\s;]|\\\\[nr]|$)", + "isCaseSensitive": false, + "isMultiLine": false, + "keywords": [ + "zendesk" + ], + "minEntropy": 0.0 + } +] \ No newline at end of file diff --git a/test/fixtures/configs/complete_config.yaml b/test/fixtures/configs/complete_config.yaml deleted file mode 100644 index 9e01c65..0000000 --- a/test/fixtures/configs/complete_config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# Complete configuration for dart_shield -shield: - rules: - - prefer_https_over_http - - avoid_hardcoded_secrets - experimental_rules: - - avoid_hardcoded_urls - - avoid_weak_hashing - - prefer_secure_random - enable_experimental: true - exclude: - - 'test/**' - - '**/*.g.dart' - - 'lib/generated/**' diff --git a/test/fixtures/configs/config_examples.dart b/test/fixtures/configs/config_examples.dart deleted file mode 100644 index 2a027ae..0000000 --- a/test/fixtures/configs/config_examples.dart +++ /dev/null @@ -1,50 +0,0 @@ -const minimalConfig = ''' -shield: - rules: - - prefer_https_over_http -'''; - -const excludePathConfig = ''' -shield: - exclude: - - 'example/bar.dart' - rules: - - prefer_https_over_http -'''; - -const excludeGlobConfig = ''' -shield: - exclude: - - '**.g.dart' - rules: - - prefer_https_over_http -'''; - -const onlyExperimentalConfig = ''' -shield: - enable_experimental: true - experimental_rules: - - avoid_hardcoded_urls -'''; - -const completeConfig = ''' -shield: - exclude: - - 'example/bar.dart' - rules: - - prefer_https_over_http - enable_experimental: true - experimental_rules: - - avoid_hardcoded_urls -'''; - -const invalidConfig = ''' -shield: - exclude: - - 'example/bar.dart' - rules: - - prefer_https_over_http - enable_experimental: false - experimental_rules: - - avoid_hardcoded_urls -'''; diff --git a/test/fixtures/configs/invalid_config.yaml b/test/fixtures/configs/invalid_config.yaml deleted file mode 100644 index a07a255..0000000 --- a/test/fixtures/configs/invalid_config.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# Invalid configuration for dart_shield -shield: - rules: - - invalid-rule-name - - another-invalid-rule - experimental_rules: - - yet-another-invalid-rule - enable_experimental: false # This should cause validation error - exclude: - - 'test/**' diff --git a/test/fixtures/configs/minimal_config.yaml b/test/fixtures/configs/minimal_config.yaml deleted file mode 100644 index e5fc1d2..0000000 --- a/test/fixtures/configs/minimal_config.yaml +++ /dev/null @@ -1,4 +0,0 @@ -# Minimal configuration for dart_shield -shield: - rules: - - prefer_https_over_http diff --git a/test/fixtures/configs/yaml_inputs.dart b/test/fixtures/configs/yaml_inputs.dart deleted file mode 100644 index 2754eef..0000000 --- a/test/fixtures/configs/yaml_inputs.dart +++ /dev/null @@ -1,42 +0,0 @@ -const String yamlSimpleMap = ''' -key1: value1 -key2: value2 -'''; - -const String yamlNestedMap = ''' -key1: value1 -key2: - nestedKey1: nestedValue1 - nestedKey2: nestedValue2 -'''; - -const String yamlSimpleList = ''' -- value1 -- value2 -- value3 -'''; - -const String yamlListOfMaps = ''' -- key1: value1 -- key2: value2 -'''; - -const String yamlMapWithList = ''' -key1: value1 -key2: - - listValue1 - - listValue2 -'''; - -const String yamlNestedListOfMaps = ''' -- key1: value1 -- - - key2: value2 -'''; - -const String yamlEmptyMap = ''' -'''; - -const String yamlEmptyList = ''' -[] -'''; diff --git a/test/fixtures/dart_files/mixed_code.dart b/test/fixtures/dart_files/mixed_code.dart deleted file mode 100644 index 0739776..0000000 --- a/test/fixtures/dart_files/mixed_code.dart +++ /dev/null @@ -1,61 +0,0 @@ -// Test fixtures for mixed Dart code (secure and insecure) -const String mixedCode = ''' -import 'dart:math'; -import 'dart:io'; - -void main() { - // Mix of secure and insecure code - const apiKey = 'sk-1234567890abcdef'; // Insecure - hardcoded secret - final random = Random.secure(); // Secure - secure random - - const httpUrl = 'http://example.com'; // Insecure - HTTP - const httpsUrl = 'https://secure.example.com'; // Secure - HTTPS - - // Environment variable usage - final envKey = Platform.environment['API_KEY']; // Secure - - // Weak hashing - final weakHash = md5.convert(utf8.encode('data')); // Insecure - - // Secure hashing - final secureHash = sha256.convert(utf8.encode('data')); // Secure -} - -class MixedApiClient { - static const String _baseUrl = 'https://api.example.com'; // Secure - HTTPS - - final String apiKey; - - MixedApiClient({required this.apiKey}); - - Future makeRequest() async { - // Insecure - HTTP URL - const insecureUrl = 'http://legacy.example.com/api'; - - // Secure - HTTPS URL - const secureUrl = 'https://api.example.com/v1/data'; - - // Insecure - hardcoded secret - const secretKey = 'sk-abcdef1234567890'; - - // Secure - environment variable - final envKey = Platform.environment['API_SECRET']; - - // Insecure - weak random - final random = Random(); - - // Secure - secure random - final secureRandom = Random.secure(); - } -} - -void main() { - // Insecure - hardcoded API key - const client = MixedApiClient(apiKey: 'sk-1234567890abcdef'); - - // Secure - environment variable - final secureClient = MixedApiClient( - apiKey: Platform.environment['API_KEY'] ?? '', - ); -} -'''; diff --git a/test/fixtures/dart_files/secure_code.dart b/test/fixtures/dart_files/secure_code.dart deleted file mode 100644 index 3051e37..0000000 --- a/test/fixtures/dart_files/secure_code.dart +++ /dev/null @@ -1,48 +0,0 @@ -// Test fixtures for secure Dart code -const String secureCode = ''' -import 'dart:math'; -import 'dart:io'; - -void main() { - // Secure random - final random = Random.secure(); - - // HTTPS URLs - const url = 'https://example.com/api'; - const endpoint = 'https://api.example.com/v1/users'; - - // Environment variables - final apiKey = Platform.environment['API_KEY']; - final secret = Platform.environment['SECRET_KEY']; - - // Secure hashing - final hash = sha256.convert(utf8.encode('password')); - final secureHash = sha512.convert(utf8.encode('data')); -} - -class SecureApiClient { - static const String _baseUrl = 'https://api.example.com'; - - final String apiKey; - - SecureApiClient({required this.apiKey}); - - Future makeRequest() async { - // All URLs use HTTPS - const secureUrl = 'https://api.example.com/v1/data'; - - // All secrets from environment - final secretKey = Platform.environment['API_SECRET']; - - // All random generation is secure - final random = Random.secure(); - } -} - -void main() { - // All API keys from environment - final client = SecureApiClient( - apiKey: Platform.environment['API_KEY'] ?? '', - ); -} -'''; diff --git a/test/fixtures/dart_files/suppression_example.dart b/test/fixtures/dart_files/suppression_example.dart deleted file mode 100644 index 9591e5c..0000000 --- a/test/fixtures/dart_files/suppression_example.dart +++ /dev/null @@ -1,26 +0,0 @@ -// shield_ignore_for_file: avoid_hardcoded_secrets - -// ignore_for_file: avoid_print - -void main() { - // shield_ignore: prefer_https_over_http - const url = 'http://example.com'; - - const key = 'secret'; // shield_ignore: avoid_hardcoded_secrets - - // shield_ignore: avoid_weak_hashing, prefer_secure_random - const hash = 'md5'; - const random = '12345'; - - // This should trigger violations since no suppression - const anotherUrl = 'http://insecure.com'; - const anotherKey = 'another-secret'; - - // Use variables to avoid unused variable warnings - print('URL: $url'); - print('Key: $key'); - print('Hash: $hash'); - print('Random: $random'); - print('Another URL: $anotherUrl'); - print('Another Key: $anotherKey'); -} diff --git a/test/fixtures/dart_files/vulnerable_code.dart b/test/fixtures/dart_files/vulnerable_code.dart deleted file mode 100644 index be5a55d..0000000 --- a/test/fixtures/dart_files/vulnerable_code.dart +++ /dev/null @@ -1,116 +0,0 @@ -// Test fixtures for vulnerable Dart code -const String vulnerableCode = ''' -import 'dart:math'; - -void main() { - // Hardcoded secrets - const apiKey = 'sk-1234567890abcdef'; - const secret = 'my-secret-key'; - const password = 'password123'; - - // HTTP URLs - const url = 'http://example.com/api'; - const endpoint = 'http://api.example.com/v1/users'; - - // Weak random - final random = Random(); - final insecureRandom = Random(123); - - // Hardcoded URLs - const apiUrl = 'https://api.example.com/v1/users'; - const webhookUrl = 'https://webhook.example.com/callback'; - - // MD5 usage - final hash = md5.convert(utf8.encode('password')); - - // SHA1 usage - final sha1Hash = sha1.convert(utf8.encode('data')); -} -'''; - -const String secureCode = ''' -import 'dart:math'; -import 'dart:io'; - -void main() { - // Secure random - final random = Random.secure(); - - // HTTPS URLs - const url = 'https://example.com/api'; - const endpoint = 'https://api.example.com/v1/users'; - - // Environment variables - final apiKey = Platform.environment['API_KEY']; - final secret = Platform.environment['SECRET_KEY']; - - // Secure hashing - final hash = sha256.convert(utf8.encode('password')); - final secureHash = sha512.convert(utf8.encode('data')); -} -'''; - -const String mixedCode = ''' -import 'dart:math'; - -void main() { - // Mix of secure and insecure code - const apiKey = 'sk-1234567890abcdef'; // Insecure - hardcoded secret - final random = Random.secure(); // Secure - secure random - - const httpUrl = 'http://example.com'; // Insecure - HTTP - const httpsUrl = 'https://secure.example.com'; // Secure - HTTPS - - // Environment variable usage - final envKey = Platform.environment['API_KEY']; // Secure - - // Weak hashing - final weakHash = md5.convert(utf8.encode('data')); // Insecure - - // Secure hashing - final secureHash = sha256.convert(utf8.encode('data')); // Secure -} -'''; - -const String complexCode = ''' -import 'dart:math'; -import 'dart:io'; - -class ApiClient { - static const String _baseUrl = 'https://api.example.com'; // Secure - HTTPS - - final String apiKey; - - ApiClient({required this.apiKey}); - - Future makeRequest() async { - // Insecure - HTTP URL - const insecureUrl = 'http://legacy.example.com/api'; - - // Secure - HTTPS URL - const secureUrl = 'https://api.example.com/v1/data'; - - // Insecure - hardcoded secret - const secretKey = 'sk-abcdef1234567890'; - - // Secure - environment variable - final envKey = Platform.environment['API_SECRET']; - - // Insecure - weak random - final random = Random(); - - // Secure - secure random - final secureRandom = Random.secure(); - } -} - -void main() { - // Insecure - hardcoded API key - const client = ApiClient(apiKey: 'sk-1234567890abcdef'); - - // Secure - environment variable - final secureClient = ApiClient( - apiKey: Platform.environment['API_KEY'] ?? '', - ); -} -'''; diff --git a/test/helpers/test_analyzer.dart b/test/helpers/test_analyzer.dart deleted file mode 100644 index bd0feb3..0000000 --- a/test/helpers/test_analyzer.dart +++ /dev/null @@ -1,230 +0,0 @@ -import 'dart:io'; - -import 'package:analyzer/dart/analysis/analysis_context_collection.dart'; -import 'package:analyzer/dart/analysis/results.dart'; -import 'package:path/path.dart' as path; - -/// Helper class for creating test analyzers and managing test files -class TestAnalyzer { - /// Creates a temporary directory for test files - static Directory createTempDir() { - return Directory.systemTemp.createTempSync('dart_shield_test_'); - } - - /// Creates a temporary Dart file with the given content - static File createTempDartFile( - Directory tempDir, - String filename, - String content, - ) { - final file = File(path.join(tempDir.path, filename)) - ..writeAsStringSync(content); - return file; - } - - /// Analyzes Dart code and returns a ResolvedUnitResult - static Future analyzeCode( - String code, { - String filename = 'test.dart', - }) async { - final tempDir = createTempDir(); - try { - final tempFile = createTempDartFile(tempDir, filename, code); - - // Create analysis context - final collection = AnalysisContextCollection( - includedPaths: [tempDir.path], - ); - final context = collection.contexts.first; - - // Get resolved unit - final result = await context.currentSession.getResolvedUnit( - tempFile.path, - ); - - if (result is ResolvedUnitResult) { - return result; - } else { - throw Exception('Failed to resolve unit: $result'); - } - } finally { - // Clean up temporary directory - tempDir.deleteSync(recursive: true); - } - } - - /// Analyzes multiple Dart files in a temporary directory - static Future> analyzeMultipleFiles( - Map files, - ) async { - final tempDir = createTempDir(); - try { - // Create all files - for (final entry in files.entries) { - createTempDartFile(tempDir, entry.key, entry.value); - } - - // Create analysis context - final collection = AnalysisContextCollection( - includedPaths: [tempDir.path], - ); - final context = collection.contexts.first; - - // Analyze all files - final results = []; - for (final entry in files.entries) { - final filePath = path.join(tempDir.path, entry.key); - final result = await context.currentSession.getResolvedUnit(filePath); - - if (result is ResolvedUnitResult) { - results.add(result); - } - } - - return results; - } finally { - // Clean up temporary directory - tempDir.deleteSync(recursive: true); - } - } - - /// Creates a test workspace with sample files - static Directory createTestWorkspace({ - Map dartFiles = const {}, - String? configContent, - }) { - final tempDir = createTempDir(); - - // Create Dart files - for (final entry in dartFiles.entries) { - createTempDartFile(tempDir, entry.key, entry.value); - } - - // Create config file if provided - if (configContent != null) { - File( - path.join(tempDir.path, 'shield_options.yaml'), - ).writeAsStringSync(configContent); - } - - return tempDir; - } - - /// Cleans up a temporary directory - static void cleanupTempDir(Directory tempDir) { - if (tempDir.existsSync()) { - tempDir.deleteSync(recursive: true); - } - } -} - -/// Mock workspace for testing -class MockWorkspace { - MockWorkspace({ - required this.rootFolder, - required this.analyzedPaths, - this.files = const {}, - this.configContent, - }); - - final String rootFolder; - final List analyzedPaths; - final Map files; - final String? configContent; - - String get configPath => path.join(rootFolder, 'shield_options.yaml'); - - List get normalizedFolders => analyzedPaths - .map( - (analyzedPath) => analyzedPath.startsWith('/') - ? analyzedPath - : path.join(rootFolder, analyzedPath), - ) - .toList(); - - bool get configExists => configContent != null; - - void createDefaultConfig() { - if (configContent != null) { - File(configPath).writeAsStringSync(configContent!); - } - } -} - -/// Test data builder for creating test scenarios -class TestDataBuilder { - static const String vulnerableCode = ''' -import 'dart:math'; - -void main() { - // Hardcoded secrets - const apiKey = 'sk-1234567890abcdef'; - const secret = 'my-secret-key'; - - // HTTP URLs - const url = 'http://example.com/api'; - - // Weak random - final random = Random(); - - // Hardcoded URLs - const endpoint = 'https://api.example.com/v1/users'; -} -'''; - - static const String secureCode = ''' -import 'dart:math'; - -void main() { - // Secure random - final random = Random.secure(); - - // HTTPS URLs - const url = 'https://example.com/api'; - - // Environment variables - final apiKey = Platform.environment['API_KEY']; -} -'''; - - static const String mixedCode = ''' -import 'dart:math'; - -void main() { - // Mix of secure and insecure code - const apiKey = 'sk-1234567890abcdef'; // Insecure - final random = Random.secure(); // Secure - - const httpUrl = 'http://example.com'; // Insecure - const httpsUrl = 'https://secure.example.com'; // Secure -} -'''; - - static const String minimalConfig = ''' -shield: - rules: - - prefer-https-over-http -'''; - - static const String completeConfig = ''' -shield: - rules: - - prefer_https_over_http - - avoid_hardcoded_secrets - experimental_rules: - - avoid_hardcoded_urls - - avoid_weak_hashing - enable_experimental: true - exclude: - - 'test/**' - - '**/*.g.dart' -'''; - - static const String invalidConfig = ''' -shield: - rules: - - invalid-rule - experimental_rules: - - another-invalid-rule -'''; -} diff --git a/test/src/analyzers/code/rules/cryptography/avoid_weak_hashing_test.dart b/test/src/analyzers/code/rules/cryptography/avoid_weak_hashing_test.dart new file mode 100644 index 0000000..60cb83e --- /dev/null +++ b/test/src/analyzers/code/rules/cryptography/avoid_weak_hashing_test.dart @@ -0,0 +1,138 @@ +// ignore_for_file: non_constant_identifier_names + +import 'package:analyzer/src/lint/registry.dart'; +import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/cryptography/avoid_weak_hashing.dart'; +import 'package:test_reflective_loader/test_reflective_loader.dart'; + +void main() { + defineReflectiveSuite(() { + defineReflectiveTests(AvoidWeakHashingTest); + }); +} + +@reflectiveTest +class AvoidWeakHashingTest extends AnalysisRuleTest { + @override + String get analysisRule => 'avoid_weak_hashing'; + + @override + void setUp() { + Registry.ruleRegistry.registerLintRule(AvoidWeakHashing()); + + // Add stub for crypto package + newPackage('crypto').addFile('lib/crypto.dart', ''' +abstract class Hash { + List convert(List data); +} +final Hash md5 = _Md5(); +final Hash sha1 = _Sha1(); +final Hash sha256 = _Sha256(); +class _Md5 implements Hash { + @override + List convert(List data) => []; +} +class _Sha1 implements Hash { + @override + List convert(List data) => []; +} +class _Sha256 implements Hash { + @override + List convert(List data) => []; +} +'''); + + super.setUp(); + } + + Future test_md5Convert_reports() async { + await assertDiagnostics( + ''' +import 'package:crypto/crypto.dart'; +void f() { + final hash = md5.convert([1, 2, 3]); +} +''', + [lint(63, 22)], + ); + } + + Future test_sha1Convert_reports() async { + await assertDiagnostics( + ''' +import 'package:crypto/crypto.dart'; +void f() { + final hash = sha1.convert([1, 2, 3]); +} +''', + [lint(63, 23)], + ); + } + + Future test_sha256Convert_noReport() async { + await assertNoDiagnostics(''' +import 'package:crypto/crypto.dart'; +void f() { + final hash = sha256.convert([1, 2, 3]); +} +'''); + } + + Future test_md5Assignment_reports() async { + await assertDiagnostics( + ''' +import 'package:crypto/crypto.dart'; +void f() { + Hash hasher; + hasher = md5; +} +''', + [lint(65, 12)], + ); + } + + Future test_sha1Assignment_reports() async { + await assertDiagnostics( + ''' +import 'package:crypto/crypto.dart'; +void f() { + Hash hasher; + hasher = sha1; +} +''', + [lint(65, 13)], + ); + } + + Future test_sha256Assignment_noReport() async { + await assertNoDiagnostics(''' +import 'package:crypto/crypto.dart'; +void f() { + Hash hasher; + hasher = sha256; +} +'''); + } + + Future test_md5InExpression_reports() async { + await assertDiagnostics( + ''' +import 'package:crypto/crypto.dart'; +void f() { + final result = md5.convert([1]).toString(); +} +''', + [lint(65, 16)], + ); + } + + Future test_unrelatedIdentifier_noReport() async { + // Identifiers named md5 or sha1 that are not from crypto package + await assertNoDiagnostics(''' +void f() { + final md5 = 'some string'; + print(md5); +} +'''); + } +} diff --git a/test/src/analyzers/code/rules/cryptography/prefer_secure_random_test.dart b/test/src/analyzers/code/rules/cryptography/prefer_secure_random_test.dart new file mode 100644 index 0000000..573c760 --- /dev/null +++ b/test/src/analyzers/code/rules/cryptography/prefer_secure_random_test.dart @@ -0,0 +1,109 @@ +// ignore_for_file: non_constant_identifier_names + +import 'package:analyzer/src/lint/registry.dart'; +import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/cryptography/prefer_secure_random.dart'; +import 'package:test_reflective_loader/test_reflective_loader.dart'; + +void main() { + defineReflectiveSuite(() { + defineReflectiveTests(PreferSecureRandomTest); + }); +} + +@reflectiveTest +class PreferSecureRandomTest extends AnalysisRuleTest { + @override + String get analysisRule => 'prefer_secure_random'; + + @override + void setUp() { + Registry.ruleRegistry.registerLintRule(PreferSecureRandom()); + super.setUp(); + } + + Future test_randomConstructor_reports() async { + await assertDiagnostics( + ''' +import 'dart:math'; +void f() { + final rng = Random(); +} +''', + [lint(45, 8)], + ); + } + + Future test_randomWithSeed_reports() async { + await assertDiagnostics( + ''' +import 'dart:math'; +void f() { + final rng = Random(42); +} +''', + [lint(45, 10)], + ); + } + + Future test_randomInClassField_reports() async { + await assertDiagnostics( + ''' +import 'dart:math'; +class MyClass { + final rng = Random(); +} +''', + [lint(50, 8)], + ); + } + + Future test_randomInFunction_reports() async { + await assertDiagnostics( + ''' +import 'dart:math'; +int getRandomNumber() { + return Random().nextInt(100); +} +''', + [lint(53, 8)], + ); + } + + Future test_multipleRandomInstances_reportsEach() async { + await assertDiagnostics( + ''' +import 'dart:math'; +void f() { + final rng1 = Random(); + final rng2 = Random(123); +} +''', + [lint(46, 8), lint(71, 11)], + ); + } + + Future test_randomWithVariableSeed_reports() async { + await assertDiagnostics( + ''' +import 'dart:math'; +void f(int seed) { + final rng = Random(seed); +} +''', + [lint(53, 12)], + ); + } + + Future test_randomWithTimestampSeed_reports() async { + await assertDiagnostics( + ''' +import 'dart:math'; +void f() { + final rng = Random(DateTime.now().millisecondsSinceEpoch); +} +''', + [lint(45, 45)], + ); + } +} diff --git a/test/src/analyzers/code/rules/network/avoid_hardcoded_urls_test.dart b/test/src/analyzers/code/rules/network/avoid_hardcoded_urls_test.dart new file mode 100644 index 0000000..d982c10 --- /dev/null +++ b/test/src/analyzers/code/rules/network/avoid_hardcoded_urls_test.dart @@ -0,0 +1,124 @@ +// ignore_for_file: non_constant_identifier_names + +import 'package:analyzer/src/lint/registry.dart'; +import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/network/avoid_harcoded_urls.dart'; +import 'package:test_reflective_loader/test_reflective_loader.dart'; + +void main() { + defineReflectiveSuite(() { + defineReflectiveTests(AvoidHardcodedUrlsTest); + }); +} + +@reflectiveTest +class AvoidHardcodedUrlsTest extends AnalysisRuleTest { + @override + String get analysisRule => 'avoid_hardcoded_urls'; + + @override + void setUp() { + Registry.ruleRegistry.registerLintRule(AvoidHardcodedUrls()); + super.setUp(); + } + + Future test_httpsUrl_reports() async { + await assertDiagnostics( + ''' +void f() { + final url = 'https://api.example.com/v1'; +} +''', + [lint(25, 28)], + ); + } + + Future test_httpUrl_reports() async { + await assertDiagnostics( + ''' +void f() { + final url = 'http://api.example.com'; +} +''', + [lint(25, 24)], + ); + } + + Future test_emptyString_noReport() async { + await assertNoDiagnostics(''' +void f() { + final url = ''; +} +'''); + } + + Future test_nonUrlString_noReport() async { + await assertNoDiagnostics(''' +void f() { + final text = 'hello world'; +} +'''); + } + + Future test_localhostUrl_reports() async { + await assertDiagnostics( + ''' +void f() { + final url = 'http://localhost:8080/api'; +} +''', + [lint(25, 27)], + ); + } + + Future test_httpsWithQueryParams_reports() async { + await assertDiagnostics( + ''' +void f() { + final url = 'https://api.example.com/search?q=test'; +} +''', + [lint(25, 39)], + ); + } + + Future test_multipleUrls_reportsEach() async { + await assertDiagnostics( + ''' +void f() { + final url1 = 'https://api.example.com'; + final url2 = 'http://other.example.com'; +} +''', + [lint(26, 25), lint(68, 26)], + ); + } + + Future test_urlInClassField_reports() async { + await assertDiagnostics( + ''' +class Config { + final baseUrl = 'https://api.example.com'; +} +''', + [lint(33, 25)], + ); + } + + Future test_urlInConstant_reports() async { + await assertDiagnostics( + ''' +const apiUrl = 'https://api.example.com/v1'; +''', + [lint(15, 28)], + ); + } + + Future test_partialUrl_noReport() async { + await assertNoDiagnostics(''' +void f() { + final path = '/api/v1/users'; +} +'''); + } +} diff --git a/test/src/analyzers/code/rules/network/prefer_https_over_http_test.dart b/test/src/analyzers/code/rules/network/prefer_https_over_http_test.dart new file mode 100644 index 0000000..17e2d9c --- /dev/null +++ b/test/src/analyzers/code/rules/network/prefer_https_over_http_test.dart @@ -0,0 +1,141 @@ +// ignore_for_file: non_constant_identifier_names + +import 'package:analyzer/src/lint/registry.dart'; +import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/network/prefer_https_over_http.dart'; +import 'package:test_reflective_loader/test_reflective_loader.dart'; + +void main() { + defineReflectiveSuite(() { + defineReflectiveTests(PreferHttpsOverHttpTest); + }); +} + +@reflectiveTest +class PreferHttpsOverHttpTest extends AnalysisRuleTest { + @override + String get analysisRule => 'prefer_https_over_http'; + + @override + void setUp() { + Registry.ruleRegistry.registerLintRule(PreferHttpsOverHttp()); + super.setUp(); + } + + Future test_httpStringLiteral_reports() async { + await assertDiagnostics( + ''' +void f() { + final url = 'http://example.com'; +} +''', + [lint(25, 20)], + ); + } + + Future test_httpsStringLiteral_noReport() async { + await assertNoDiagnostics(''' +void f() { + final url = 'https://example.com'; +} +'''); + } + + Future test_httpWithPath_reports() async { + await assertDiagnostics( + ''' +void f() { + final url = 'http://example.com/api/v1'; +} +''', + [lint(25, 27)], + ); + } + + Future test_emptyString_noReport() async { + await assertNoDiagnostics(''' +void f() { + final url = ''; +} +'''); + } + + Future test_nonUrlString_noReport() async { + await assertNoDiagnostics(''' +void f() { + final text = 'hello world'; +} +'''); + } + + Future test_httpInVariable_reports() async { + await assertDiagnostics( + ''' +void f() { + final config = 'http://api.example.com'; +} +''', + [lint(28, 24)], + ); + } + + Future test_httpLocalhost_reports() async { + await assertDiagnostics( + ''' +void f() { + final url = 'http://localhost:8080'; +} +''', + [lint(25, 23)], + ); + } + + Future test_httpWithPort_reports() async { + await assertDiagnostics( + ''' +void f() { + final url = 'http://example.com:3000/api'; +} +''', + [lint(25, 29)], + ); + } + + Future test_httpInList_reports() async { + await assertDiagnostics( + ''' +void f() { + final urls = [ + 'http://example.com', + ]; +} +''', + [lint(32, 20)], + ); + } + + Future test_httpInMap_reports() async { + await assertDiagnostics( + ''' +void f() { + final config = { + 'url': 'http://example.com', + }; +} +''', + [lint(41, 20)], + ); + } + + Future test_multipleHttpUrls_reportsEach() async { + await assertDiagnostics( + ''' +void f() { + final url1 = 'http://example.com'; + final url2 = 'http://other.com'; +} +''', + [lint(26, 20), lint(63, 18)], + ); + } +} diff --git a/test/src/analyzers/code/rules/secrets/avoid_hardcoded_secrets_test.dart b/test/src/analyzers/code/rules/secrets/avoid_hardcoded_secrets_test.dart new file mode 100644 index 0000000..a9b731d --- /dev/null +++ b/test/src/analyzers/code/rules/secrets/avoid_hardcoded_secrets_test.dart @@ -0,0 +1,145 @@ +// ignore_for_file: non_constant_identifier_names + +import 'package:analyzer/src/lint/registry.dart'; +import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/secrets/avoid_hardcoded_secrets.dart'; +import 'package:test_reflective_loader/test_reflective_loader.dart'; + +void main() { + defineReflectiveSuite(() { + defineReflectiveTests(AvoidHardcodedSecretsTest); + }); +} + +@reflectiveTest +class AvoidHardcodedSecretsTest extends AnalysisRuleTest { + @override + String get analysisRule => 'avoid_hardcoded_secrets'; + + @override + void setUp() { + Registry.ruleRegistry.registerLintRule(AvoidHardcodedSecrets()); + super.setUp(); + } + + Future test_awsAccessKey_reports() async { + // AWS access keys start with AKIA and are 20 chars + await assertDiagnostics( + ''' +void f() { + final key = 'AKIAIOSFODNN7EXAMPLE'; +} +''', + [lint(25, 22)], + ); + } + + Future test_githubToken_reports() async { + await assertDiagnostics( + ''' +void f() { + final token = 'ghp_aBcDeFgHiJkLmNoPqRsTuVwXyZ012345'; +} +''', + [lint(27, 38)], + ); + } + + Future test_shortString_noReport() async { + await assertNoDiagnostics(''' +void f() { + final s = 'short'; +} +'''); + } + + Future test_lowEntropyString_noReport() async { + await assertNoDiagnostics(''' +void f() { + final s = 'aaaaaaaaaaaaaaaa'; +} +'''); + } + + Future test_contextVariableName_detects() async { + // Tests that apiKey variable name triggers keyword check with Stripe + // pattern + await assertDiagnostics( + ''' +void f() { + final apiKey = 'sk_live_abcdefghijklmnop'; +} +''', + [lint(28, 26)], + ); + } + + Future test_mapKeyContext_detects() async { + await assertDiagnostics( + ''' +void f() { + final config = { + 'apiKey': 'sk_test_1234567890abcdef', + }; +} +''', + [lint(44, 26)], + ); + } + + // Note: Slack token test removed to avoid GitHub push protection + // false positives. The xoxb- pattern is still tested in integration tests + // with real project scans. + + Future test_genericApiKeyPattern_reports() async { + // Generic API key with sufficient entropy + await assertDiagnostics( + ''' +void f() { + final apiKey = 'api_key_xK9mN2pL5qR8vW3yZ1aB4cD7eF0gH'; +} +''', + [lint(28, 39)], + ); + } + + Future test_regularString_noReport() async { + await assertNoDiagnostics(''' +void f() { + final message = 'Hello, World!'; +} +'''); + } + + Future test_emptyString_noReport() async { + await assertNoDiagnostics(''' +void f() { + final s = ''; +} +'''); + } + + Future test_namedParameterContext_detects() async { + await assertDiagnostics( + ''' +void configure({required String apiKey}) {} +void f() { + configure(apiKey: 'sk_live_abc123def456ghi789'); +} +''', + [lint(75, 28)], + ); + } + + Future test_jwtToken_reports() async { + // JWT tokens have distinctive patterns + await assertDiagnostics( + ''' +void f() { + final token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'; +} +''', + [lint(27, 157)], + ); + } +} diff --git a/test/src/analyzers/code/rules/secrets/secret_rule_test.dart b/test/src/analyzers/code/rules/secrets/secret_rule_test.dart new file mode 100644 index 0000000..df7139a --- /dev/null +++ b/test/src/analyzers/code/rules/secrets/secret_rule_test.dart @@ -0,0 +1,60 @@ +import 'package:dart_shield/src/analyzers/code/rules/secrets/secret_rule.dart'; +import 'package:test/test.dart'; + +void main() { + group('SecretRule', () { + test('fromJson parses standard rule correctly', () { + final json = { + 'id': 'test-rule', + 'description': 'Test Description', + 'pattern': 'abc', + 'keywords': ['key'], + 'minEntropy': 1.5, + }; + + final rule = SecretRule.fromJson(json); + + expect(rule.id, 'test-rule'); + expect(rule.description, 'Test Description'); + expect(rule.pattern.pattern, 'abc'); + expect(rule.pattern.isCaseSensitive, isTrue); // Default + expect(rule.pattern.isMultiLine, isFalse); // Default + expect(rule.keywords, ['key']); + expect(rule.minEntropy, 1.5); + }); + + test('fromJson parses flags correctly', () { + final json = { + 'id': 'flags-rule', + 'description': 'desc', + 'pattern': 'abc', + 'isCaseSensitive': false, + 'isMultiLine': true, + }; + + final rule = SecretRule.fromJson(json); + + expect(rule.pattern.isCaseSensitive, isFalse); + expect(rule.pattern.isMultiLine, isTrue); + }); + + test('toJson serializes correctly with flags', () { + final rule = SecretRule( + id: 'test', + description: 'desc', + pattern: RegExp('abc', caseSensitive: false, multiLine: true), + keywords: ['k'], + minEntropy: 2, + ); + + final json = rule.toJson(); + + expect(json['id'], 'test'); + expect(json['pattern'], 'abc'); + expect(json['isCaseSensitive'], isFalse); + expect(json['isMultiLine'], isTrue); + expect(json['keywords'], ['k']); + expect(json['minEntropy'], 2.0); + }); + }); +} diff --git a/test/src/analyzers/utils/shannon_entropy_test.dart b/test/src/analyzers/utils/shannon_entropy_test.dart new file mode 100644 index 0000000..22b7738 --- /dev/null +++ b/test/src/analyzers/utils/shannon_entropy_test.dart @@ -0,0 +1,44 @@ +import 'package:dart_shield/src/analyzers/utils/shannon_entropy.dart'; +import 'package:test/test.dart'; + +void main() { + group('ShannonEntropy', () { + test('returns 0.0 for empty string', () { + expect(ShannonEntropy.calculate(''), 0.0); + }); + + test('returns 0.0 for string with identical characters', () { + expect(ShannonEntropy.calculate('aaaaa'), 0.0); + }); + + test('calculates entropy for simple binary string', () { + // "01" -> 2 symbols, equal probability (0.5) + // - [0.5 * log2(0.5) + 0.5 * log2(0.5)] + // - [-0.5 + -0.5] = -(-1) = 1.0 bit + expect(ShannonEntropy.calculate('01'), closeTo(1.0, 0.0001)); + }); + + test('calculates higher entropy for more diverse set', () { + // "abcd" -> 4 distinct symbols, each 0.25 prob + // log2(4) = 2 bits + expect(ShannonEntropy.calculate('abcd'), closeTo(2.0, 0.0001)); + }); + + test('is case sensitive', () { + // "Aa" -> 2 distinct symbols + expect(ShannonEntropy.calculate('Aa'), closeTo(1.0, 0.0001)); + // "aa" -> 1 distinct symbol + expect(ShannonEntropy.calculate('aa'), 0.0); + }); + + test('calculates entropy for typical API key examples', () { + // Low entropy string + final low = ShannonEntropy.calculate('password123'); + + // High entropy string (simulated API key) + final high = ShannonEntropy.calculate('7Fz92xK1qM4bJ8vR'); + + expect(high, greaterThan(low)); + }); + }); +} diff --git a/test/src/configuration/shield_config_test.dart b/test/src/configuration/shield_config_test.dart new file mode 100644 index 0000000..5ee47bb --- /dev/null +++ b/test/src/configuration/shield_config_test.dart @@ -0,0 +1,68 @@ +import 'dart:io'; + +import 'package:dart_shield/src/configuration/shield_config.dart'; +import 'package:dart_shield/src/domain/exceptions.dart'; +import 'package:test/test.dart'; + +void main() { + group('ShieldConfig', () { + late File configFile; + + setUp(() { + configFile = File('analysis_options.yaml'); + }); + + tearDown(() { + if (configFile.existsSync()) { + configFile.deleteSync(); + } + }); + + test('returns default config when file does not exist', () async { + if (configFile.existsSync()) configFile.deleteSync(); + final config = await ShieldConfig.load(); + expect(config.analyzers.code, isTrue); + expect(config.analyzers.deps, isTrue); + }); + + test('returns default config when file is empty', () async { + configFile.writeAsStringSync(''); + final config = await ShieldConfig.load(); + expect(config.analyzers.code, isTrue); + }); + + test('parses valid configuration correctly', () async { + configFile.writeAsStringSync(''' +dart_shield: + analyzers: + code: false + deps: false +'''); + final config = await ShieldConfig.load(); + expect(config.analyzers.code, isFalse); + expect(config.analyzers.deps, isFalse); + }); + + test('throws ConfigException on invalid yaml syntax', () async { + configFile.writeAsStringSync(''' +dart_shield: + analyzers: [ +'''); // Broken YAML + expect( + ShieldConfig.load, + throwsA(isA()), + ); + }); + + test('throws ConfigException on type mismatch', () async { + configFile.writeAsStringSync(''' +dart_shield: + analyzers: "invalid_string" +'''); + expect( + ShieldConfig.load, + throwsA(isA()), + ); + }); + }); +} diff --git a/test/src/core/analyzer_factory_test.dart b/test/src/core/analyzer_factory_test.dart new file mode 100644 index 0000000..41d94a6 --- /dev/null +++ b/test/src/core/analyzer_factory_test.dart @@ -0,0 +1,63 @@ +import 'package:dart_shield/src/analyzers/code/code_analyzer.dart'; +import 'package:dart_shield/src/configuration/shield_config.dart'; +import 'package:dart_shield/src/core/analyzer_factory.dart'; +import 'package:test/test.dart'; + +void main() { + group('AnalyzerFactory', () { + const defaultConfig = ShieldConfig(); + const emptyPaths = []; + + test('resolves default analyzers (code)', () { + final analyzers = AnalyzerFactory.resolve( + paths: emptyPaths, + config: defaultConfig, + ); + expect(analyzers, hasLength(1)); + expect(analyzers.first, isA()); + }); + + test('respects config disabling analyzers', () { + const config = ShieldConfig( + analyzers: ShieldAnalyzersConfig(code: false), + ); + final analyzers = AnalyzerFactory.resolve( + paths: emptyPaths, + config: config, + ); + expect(analyzers, isEmpty); + }); + + test('respects "only" argument (overrides config)', () { + const config = ShieldConfig( + analyzers: ShieldAnalyzersConfig(code: false), + ); + final analyzers = AnalyzerFactory.resolve( + paths: emptyPaths, + config: config, + only: ['code'], + ); + expect(analyzers, hasLength(1)); + expect(analyzers.first, isA()); + }); + + test('respects "exclude" argument (overrides everything)', () { + final analyzers = AnalyzerFactory.resolve( + paths: emptyPaths, + config: defaultConfig, + exclude: ['code'], + ); + expect(analyzers, isEmpty); + }); + + test('exclude takes precedence over only', () { + final analyzers = AnalyzerFactory.resolve( + paths: emptyPaths, + config: defaultConfig, + only: ['code'], + exclude: ['code'], + ); + expect(analyzers, isEmpty); + }); + }); +} diff --git a/test/tool/utils/regex_sanitizer_test.dart b/test/tool/utils/regex_sanitizer_test.dart new file mode 100644 index 0000000..c4184f5 --- /dev/null +++ b/test/tool/utils/regex_sanitizer_test.dart @@ -0,0 +1,45 @@ +import 'package:test/test.dart'; + +import '../../../tool/utils/regex_sanitizer.dart'; + +void main() { + group('RegexSanitizer', () { + test('handles global case insensitivity at start', () { + final result = RegexSanitizer.sanitize('(?i)abc'); + expect(result.pattern, 'abc'); + expect(result.caseSensitive, isFalse); + }); + + test('handles inline case insensitivity', () { + final result = RegexSanitizer.sanitize('abc(?i)def'); + expect(result.pattern, 'abcdef'); + expect(result.caseSensitive, isFalse); + }); + + test('handles scoped case insensitivity', () { + final result = RegexSanitizer.sanitize('(?i:abc)def'); + expect(result.pattern, '(?:abc)def'); + expect(result.caseSensitive, isFalse); + }); + + test('handles multiline flag', () { + final result = RegexSanitizer.sanitize('(?m)^abc'); + expect(result.pattern, '^abc'); + expect(result.multiLine, isTrue); + }); + + test('handles combined flags', () { + final result = RegexSanitizer.sanitize('(?i)(?m)abc'); + expect(result.pattern, 'abc'); + expect(result.caseSensitive, isFalse); + expect(result.multiLine, isTrue); + }); + + test('leaves standard regex untouched', () { + final result = RegexSanitizer.sanitize(r'^abc[0-9]+$'); + expect(result.pattern, r'^abc[0-9]+$'); + expect(result.caseSensitive, isTrue); + expect(result.multiLine, isFalse); + }); + }); +} diff --git a/test/unit/security_analyzer/configuration/glob_converter_test.dart b/test/unit/security_analyzer/configuration/glob_converter_test.dart deleted file mode 100644 index 7c4ec43..0000000 --- a/test/unit/security_analyzer/configuration/glob_converter_test.dart +++ /dev/null @@ -1,26 +0,0 @@ -import 'package:dart_shield/src/security_analyzer/configuration/glob_converter.dart'; -import 'package:glob/glob.dart'; -import 'package:test/test.dart'; - -void main() { - const converter = GlobConverter(); - - group('GlobConverter', () { - test('fromJson should return a Glob object', () { - final glob = converter.fromJson('*.dart'); - expect(glob, isA()); - expect(glob.pattern, equals('*.dart')); - }); - - test('fromJson should handle empty string', () { - expect(() => converter.fromJson(''), throwsException); - }); - - test('toJson should return a string', () { - final glob = Glob('*.dart'); - final pattern = converter.toJson(glob); - expect(pattern, isA()); - expect(pattern, equals('*.dart')); - }); - }); -} diff --git a/test/unit/security_analyzer/configuration/lint_rule_converter_test.dart b/test/unit/security_analyzer/configuration/lint_rule_converter_test.dart deleted file mode 100644 index edb5976..0000000 --- a/test/unit/security_analyzer/configuration/lint_rule_converter_test.dart +++ /dev/null @@ -1,101 +0,0 @@ -import 'package:dart_shield/src/security_analyzer/configuration/lint_rule_converter.dart'; -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rules.dart'; -import 'package:glob/glob.dart'; -import 'package:test/test.dart'; - -void main() { - const converter = LintRuleConverter(); - - group('LintRuleConverter', () { - group('string format', () { - test('fromJson should return a LintRule object for valid ruleId', () { - final rule = converter.fromJson('avoid_hardcoded_urls'); - expect(rule, isA()); - expect(rule.id, equals(RuleId.avoidHardcodedUrls)); - expect(rule.excludes, isEmpty); - }); - - test('fromJson should throw an exception for invalid ruleId', () { - expect( - () => converter.fromJson('invalid_rule_id'), - throwsArgumentError, - ); - }); - }); - - group('object format', () { - test('fromJson should parse object format with exclude patterns', () { - final rule = converter.fromJson({ - 'avoid_hardcoded_secrets': { - 'exclude': ['test/**', 'lib/config.dart'], - }, - }); - expect(rule, isA()); - expect(rule.id, equals(RuleId.avoidHardcodedSecrets)); - expect(rule.excludes, hasLength(2)); - expect(rule.excludes.any((glob) => glob.pattern == 'test/**'), isTrue); - expect( - rule.excludes.any((glob) => glob.pattern == 'lib/config.dart'), - isTrue, - ); - }); - - test('fromJson should handle object format with empty exclude', () { - final rule = converter.fromJson({ - 'prefer_https_over_http': {}, - }); - expect(rule, isA()); - expect(rule.id, equals(RuleId.preferHttpsOverHttp)); - expect(rule.excludes, isEmpty); - }); - - test('fromJson should handle object format with missing exclude', () { - final rule = converter.fromJson({ - 'prefer_https_over_http': {'other-config': 'value'}, - }); - expect(rule, isA()); - expect(rule.id, equals(RuleId.preferHttpsOverHttp)); - expect(rule.excludes, isEmpty); - }); - - test('fromJson should throw for object format with multiple entries', () { - expect( - () => converter.fromJson({ - 'rule1': {}, - 'rule2': {}, - }), - throwsArgumentError, - ); - }); - }); - - group('mixed format support', () { - test('should handle both string and object formats', () { - // Test string format - final stringRule = converter.fromJson('avoid_hardcoded_urls'); - expect(stringRule.id, equals(RuleId.avoidHardcodedUrls)); - expect(stringRule.excludes, isEmpty); - - // Test object format - final objectRule = converter.fromJson({ - 'avoid_hardcoded_secrets': { - 'exclude': ['test/**'], - }, - }); - expect(objectRule.id, equals(RuleId.avoidHardcodedSecrets)); - expect(objectRule.excludes, hasLength(1)); - }); - }); - - test('toJson should return a string for valid LintRule', () { - final rule = RuleRegistry.createRule( - id: RuleId.avoidHardcodedUrls, - excludes: [Glob('test/**')], - ); - final ruleId = converter.toJson(rule); - expect(ruleId, isA()); - expect(ruleId, equals(RuleId.avoidHardcodedUrls.name)); - }); - }); -} diff --git a/test/unit/security_analyzer/configuration/shield_config_test.dart b/test/unit/security_analyzer/configuration/shield_config_test.dart deleted file mode 100644 index 6544e0d..0000000 --- a/test/unit/security_analyzer/configuration/shield_config_test.dart +++ /dev/null @@ -1,77 +0,0 @@ -import 'package:dart_shield/src/security_analyzer/configuration/configuration.dart'; -import 'package:dart_shield/src/security_analyzer/exceptions/exceptions.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule/rule.dart'; -import 'package:dart_shield/src/utils/utils.dart'; -import 'package:test/test.dart'; -import 'package:yaml/yaml.dart'; - -import '../../../fixtures/configs/config_examples.dart'; - -void main() { - group('$ShieldConfig - valid configuration', () { - test('fromJson should handle minimal config', () { - final map = - yamlToDartMap(loadYaml(minimalConfig)) as Map; - final config = ShieldConfig.fromYaml(map); - - expect(config.rules.length, equals(1)); - expect(config.rules.first, isA()); - expect(config.enableExperimental, equals(false)); - expect(config.experimentalRules.length, equals(0)); - }); - - test('fromJson should handle exclude paths (normal)', () { - final map = - yamlToDartMap(loadYaml(excludePathConfig)) as Map; - final config = ShieldConfig.fromYaml(map); - - expect(config.rules.length, equals(1)); - expect(config.rules.first, isA()); - expect(config.exclude.length, equals(1)); - }); - - test('fromJson should handle exclude paths (glob)', () { - final map = - yamlToDartMap(loadYaml(excludeGlobConfig)) as Map; - final config = ShieldConfig.fromYaml(map); - - expect(config.rules.length, equals(1)); - expect(config.rules.first, isA()); - expect(config.exclude.length, equals(1)); - }); - - test('fromJson should handle only experimental rules', () { - final map = - yamlToDartMap(loadYaml(onlyExperimentalConfig)) - as Map; - final config = ShieldConfig.fromYaml(map); - - expect(config.rules.length, equals(0)); - expect(config.enableExperimental, equals(true)); - expect(config.experimentalRules.length, equals(1)); - }); - - test('fromJson should handle complete config', () { - final map = - yamlToDartMap(loadYaml(completeConfig)) as Map; - final config = ShieldConfig.fromYaml(map); - - expect(config.rules.length, equals(1)); - expect(config.rules.first, isA()); - expect(config.enableExperimental, equals(true)); - expect(config.experimentalRules.length, equals(1)); - expect(config.exclude.length, equals(1)); - }); - }); - - group('$ShieldConfig - invalid configuration', () { - test('fromJson should throw an exception for invalid config', () { - final map = - yamlToDartMap(loadYaml(invalidConfig)) as Map; - expect( - () => ShieldConfig.fromYaml(map), - throwsA(isA()), - ); - }); - }); -} diff --git a/test/unit/security_analyzer/rules/enums/rule_id_test.dart b/test/unit/security_analyzer/rules/enums/rule_id_test.dart deleted file mode 100644 index 901539b..0000000 --- a/test/unit/security_analyzer/rules/enums/rule_id_test.dart +++ /dev/null @@ -1,118 +0,0 @@ -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:test/test.dart'; - -void main() { - group('RuleId', () { - group('fromYamlName', () { - test('converts snake_case to camelCase correctly', () { - expect( - RuleId.fromYamlName('prefer_https_over_http'), - equals(RuleId.preferHttpsOverHttp), - ); - expect( - RuleId.fromYamlName('avoid_hardcoded_urls'), - equals(RuleId.avoidHardcodedUrls), - ); - expect( - RuleId.fromYamlName('avoid_hardcoded_secrets'), - equals(RuleId.avoidHardcodedSecrets), - ); - expect( - RuleId.fromYamlName('avoid_weak_hashing'), - equals(RuleId.avoidWeakHashing), - ); - expect( - RuleId.fromYamlName('prefer_secure_random'), - equals(RuleId.preferSecureRandom), - ); - }); - - test('handles single word rules', () { - // Test edge case for rules without underscores - should throw for - // non-existent rules - expect( - () => RuleId.fromYamlName('test_rule'), - throwsA(isA()), - ); - }); - - test('throws for invalid rule names', () { - expect( - () => RuleId.fromYamlName('invalid_rule'), - throwsA(isA()), - ); - expect(() => RuleId.fromYamlName(''), throwsA(isA())); - expect( - () => RuleId.fromYamlName('unknown_rule_name'), - throwsA(isA()), - ); - }); - - test('handles case sensitivity', () { - expect( - () => RuleId.fromYamlName('PREFER_HTTPS_OVER_HTTP'), - throwsA(isA()), - ); - }); - }); - - group('toUnderscoreCase', () { - test('converts camelCase to underscore_case correctly', () { - expect( - RuleId.preferHttpsOverHttp.toUnderscoreCase(), - equals('prefer_https_over_http'), - ); - expect( - RuleId.avoidHardcodedUrls.toUnderscoreCase(), - equals('avoid_hardcoded_urls'), - ); - expect( - RuleId.avoidHardcodedSecrets.toUnderscoreCase(), - equals('avoid_hardcoded_secrets'), - ); - expect( - RuleId.avoidWeakHashing.toUnderscoreCase(), - equals('avoid_weak_hashing'), - ); - expect( - RuleId.preferSecureRandom.toUnderscoreCase(), - equals('prefer_secure_random'), - ); - }); - - test('handles single word rules', () { - // Test edge case for rules without camelCase - expect( - RuleId.preferSecureRandom.toUnderscoreCase(), - equals('prefer_secure_random'), - ); - }); - }); - - group('enum values', () { - test('has all expected rule IDs', () { - expect(RuleId.values.length, equals(5)); - expect(RuleId.values, contains(RuleId.preferHttpsOverHttp)); - expect(RuleId.values, contains(RuleId.avoidHardcodedUrls)); - expect(RuleId.values, contains(RuleId.avoidHardcodedSecrets)); - expect(RuleId.values, contains(RuleId.avoidWeakHashing)); - expect(RuleId.values, contains(RuleId.preferSecureRandom)); - }); - - test('enum values are unique', () { - final values = RuleId.values.map((e) => e.name).toSet(); - expect(values.length, equals(RuleId.values.length)); - }); - }); - - group('round-trip conversion', () { - test('fromYamlName and toUnderscoreCase work together', () { - for (final ruleId in RuleId.values) { - final underscoreCase = ruleId.toUnderscoreCase(); - final convertedBack = RuleId.fromYamlName(underscoreCase); - expect(convertedBack, equals(ruleId)); - } - }); - }); - }); -} diff --git a/test/unit/security_analyzer/rules/enums/rule_status_test.dart b/test/unit/security_analyzer/rules/enums/rule_status_test.dart deleted file mode 100644 index 1d8f42c..0000000 --- a/test/unit/security_analyzer/rules/enums/rule_status_test.dart +++ /dev/null @@ -1,56 +0,0 @@ -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:test/test.dart'; - -void main() { - group('RuleStatus', () { - group('enum values', () { - test('has experimental status', () { - expect(RuleStatus.experimental.name, equals('experimental')); - }); - - test('has stable status', () { - expect(RuleStatus.stable.name, equals('stable')); - }); - - test('has deprecated status', () { - expect(RuleStatus.deprecated.name, equals('deprecated')); - }); - }); - - group('enum properties', () { - test('has all expected status values', () { - expect(RuleStatus.values.length, equals(3)); - expect(RuleStatus.values, contains(RuleStatus.experimental)); - expect(RuleStatus.values, contains(RuleStatus.stable)); - expect(RuleStatus.values, contains(RuleStatus.deprecated)); - }); - - test('enum values are unique', () { - final values = RuleStatus.values.map((e) => e.name).toSet(); - expect(values.length, equals(RuleStatus.values.length)); - }); - }); - - group('status lifecycle', () { - test('experimental is initial status', () { - expect(RuleStatus.experimental.name, equals('experimental')); - }); - - test('stable is production status', () { - expect(RuleStatus.stable.name, equals('stable')); - }); - - test('deprecated is end-of-life status', () { - expect(RuleStatus.deprecated.name, equals('deprecated')); - }); - }); - - group('status ordering', () { - test('status values are ordered logically', () { - expect(RuleStatus.values.indexOf(RuleStatus.experimental), equals(0)); - expect(RuleStatus.values.indexOf(RuleStatus.stable), equals(1)); - expect(RuleStatus.values.indexOf(RuleStatus.deprecated), equals(2)); - }); - }); - }); -} diff --git a/test/unit/security_analyzer/rules/enums/severity_test.dart b/test/unit/security_analyzer/rules/enums/severity_test.dart deleted file mode 100644 index 2decb98..0000000 --- a/test/unit/security_analyzer/rules/enums/severity_test.dart +++ /dev/null @@ -1,84 +0,0 @@ -import 'package:analyzer_plugin/protocol/protocol_common.dart'; -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:test/test.dart'; - -void main() { - group('Severity', () { - group('enum values', () { - test('has correct critical severity', () { - expect(Severity.critical.value, equals('critical')); - expect( - Severity.critical.analysisSeverity, - equals(AnalysisErrorSeverity.ERROR), - ); - }); - - test('has correct warning severity', () { - expect(Severity.warning.value, equals('warning')); - expect( - Severity.warning.analysisSeverity, - equals(AnalysisErrorSeverity.WARNING), - ); - }); - - test('has correct info severity', () { - expect(Severity.info.value, equals('info')); - expect( - Severity.info.analysisSeverity, - equals(AnalysisErrorSeverity.INFO), - ); - }); - }); - - group('enum properties', () { - test('has all expected severity levels', () { - expect(Severity.values.length, equals(3)); - expect(Severity.values, contains(Severity.critical)); - expect(Severity.values, contains(Severity.warning)); - expect(Severity.values, contains(Severity.info)); - }); - - test('severity levels are ordered correctly', () { - expect(Severity.values.indexOf(Severity.critical), equals(0)); - expect(Severity.values.indexOf(Severity.warning), equals(1)); - expect(Severity.values.indexOf(Severity.info), equals(2)); - }); - - test('enum values are unique', () { - final values = Severity.values.map((e) => e.name).toSet(); - expect(values.length, equals(Severity.values.length)); - }); - }); - - group('severity comparison', () { - test('critical is more severe than warning', () { - expect( - Severity.critical.analysisSeverity.index, - greaterThan(Severity.warning.analysisSeverity.index), - ); - }); - - test('warning is more severe than info', () { - expect( - Severity.warning.analysisSeverity.index, - greaterThan(Severity.info.analysisSeverity.index), - ); - }); - - test('critical is more severe than info', () { - expect( - Severity.critical.analysisSeverity.index, - greaterThan(Severity.info.analysisSeverity.index), - ); - }); - }); - - group('string representation', () { - test('value property matches name', () { - for (final severity in Severity.values) { - expect(severity.value, equals(severity.name)); - } - }); - }); - }); -} diff --git a/test/unit/security_analyzer/rules/models/lint_issue_test.dart b/test/unit/security_analyzer/rules/models/lint_issue_test.dart deleted file mode 100644 index f088042..0000000 --- a/test/unit/security_analyzer/rules/models/lint_issue_test.dart +++ /dev/null @@ -1,226 +0,0 @@ -import 'package:analyzer/dart/analysis/results.dart'; -import 'package:analyzer/dart/ast/syntactic_entity.dart'; -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule/rule.dart'; -import 'package:source_span/source_span.dart'; -import 'package:test/test.dart'; - -void main() { - group('LintIssue', () { - group('constructor', () { - test('creates LintIssue with all required fields', () { - final location = SourceSpan( - SourceLocation(0, sourceUrl: Uri.parse('file://test.dart')), - SourceLocation(12, sourceUrl: Uri.parse('file://test.dart')), - 'test content', - ); - - final issue = LintIssue( - ruleId: 'test_rule', - severity: Severity.warning, - message: 'Test message', - location: location, - ); - - expect(issue.ruleId, equals('test_rule')); - expect(issue.severity, equals(Severity.warning)); - expect(issue.message, equals('Test message')); - expect(issue.location, equals(location)); - }); - - test('handles different severity levels', () { - final location = SourceSpan( - SourceLocation(0, sourceUrl: Uri.parse('file://test.dart')), - SourceLocation(12, sourceUrl: Uri.parse('file://test.dart')), - 'test content', - ); - - final criticalIssue = LintIssue( - ruleId: 'critical_rule', - severity: Severity.critical, - message: 'Critical message', - location: location, - ); - - final warningIssue = LintIssue( - ruleId: 'warning_rule', - severity: Severity.warning, - message: 'Warning message', - location: location, - ); - - final infoIssue = LintIssue( - ruleId: 'info_rule', - severity: Severity.info, - message: 'Info message', - location: location, - ); - - expect(criticalIssue.severity, equals(Severity.critical)); - expect(warningIssue.severity, equals(Severity.warning)); - expect(infoIssue.severity, equals(Severity.info)); - }); - }); - - group('withRule factory', () { - test('creates LintIssue from rule with correct properties', () { - final location = SourceSpan( - SourceLocation(0, sourceUrl: Uri.parse('file://test.dart')), - SourceLocation(12, sourceUrl: Uri.parse('file://test.dart')), - 'test content', - ); - - // Create a mock rule for testing - final rule = _MockLintRule( - id: RuleId.avoidHardcodedSecrets, - severity: Severity.critical, - message: 'Avoid hardcoding secrets', - ); - - final issue = LintIssue.withRule( - rule: rule, - message: 'Custom message', - location: location, - ); - - expect(issue.ruleId, equals('avoid_hardcoded_secrets')); - expect(issue.severity, equals(Severity.critical)); - expect(issue.message, equals('Custom message')); - expect(issue.location, equals(location)); - }); - - test('uses rule properties correctly', () { - final location = SourceSpan( - SourceLocation(0, sourceUrl: Uri.parse('file://test.dart')), - SourceLocation(12, sourceUrl: Uri.parse('file://test.dart')), - 'test content', - ); - - final rule = _MockLintRule( - id: RuleId.preferHttpsOverHttp, - severity: Severity.info, - message: 'Prefer HTTPS over HTTP', - ); - - final issue = LintIssue.withRule( - rule: rule, - message: 'Use HTTPS instead', - location: location, - ); - - expect(issue.ruleId, equals('prefer_https_over_http')); - expect(issue.severity, equals(Severity.info)); - expect(issue.message, equals('Use HTTPS instead')); - }); - }); - - group('toJson', () { - test('converts LintIssue to JSON correctly', () { - final location = SourceSpan( - SourceLocation( - 5, - sourceUrl: Uri.parse('file://test.dart'), - line: 1, - column: 5, - ), - SourceLocation( - 17, - sourceUrl: Uri.parse('file://test.dart'), - line: 1, - column: 17, - ), - 'test content', - ); - - final issue = LintIssue( - ruleId: 'test_rule', - severity: Severity.warning, - message: 'Test message', - location: location, - ); - - final json = issue.toJson(); - - expect(json['ruleId'], equals('test_rule')); - expect(json['severity'], equals('warning')); - expect(json['message'], equals('Test message')); - expect(json['location'], isA>()); - - final locationJson = json['location']! as Map; - expect(locationJson['startLine'], equals(1)); - expect(locationJson['startColumn'], equals(5)); - expect(locationJson['endLine'], equals(1)); - expect(locationJson['endColumn'], equals(17)); - }); - - test('handles different severity levels in JSON', () { - final location = SourceSpan( - SourceLocation(0, sourceUrl: Uri.parse('file://test.dart')), - SourceLocation(12, sourceUrl: Uri.parse('file://test.dart')), - 'test content', - ); - - final criticalIssue = LintIssue( - ruleId: 'critical_rule', - severity: Severity.critical, - message: 'Critical message', - location: location, - ); - - final warningIssue = LintIssue( - ruleId: 'warning_rule', - severity: Severity.warning, - message: 'Warning message', - location: location, - ); - - final infoIssue = LintIssue( - ruleId: 'info_rule', - severity: Severity.info, - message: 'Info message', - location: location, - ); - - expect(criticalIssue.toJson()['severity'], equals('critical')); - expect(warningIssue.toJson()['severity'], equals('warning')); - expect(infoIssue.toJson()['severity'], equals('info')); - }); - }); - - group('properties', () { - test('LintIssue properties are accessible', () { - final location = SourceSpan( - SourceLocation(0, sourceUrl: Uri.parse('file://test.dart')), - SourceLocation(12, sourceUrl: Uri.parse('file://test.dart')), - 'test content', - ); - - final issue = LintIssue( - ruleId: 'test_rule', - severity: Severity.warning, - message: 'Test message', - location: location, - ); - - expect(issue.ruleId, equals('test_rule')); - expect(issue.severity, equals(Severity.warning)); - expect(issue.message, equals('Test message')); - expect(issue.location, equals(location)); - }); - }); - }); -} - -// Mock LintRule for testing -class _MockLintRule extends LintRule { - _MockLintRule({ - required super.id, - required super.severity, - required super.message, - }) : super( - excludes: [], - ); - - @override - List collectErrorNodes(ResolvedUnitResult source) => []; -} diff --git a/test/unit/security_analyzer/rules/models/matching_pattern_test.dart b/test/unit/security_analyzer/rules/models/matching_pattern_test.dart deleted file mode 100644 index 0f93efb..0000000 --- a/test/unit/security_analyzer/rules/models/matching_pattern_test.dart +++ /dev/null @@ -1,154 +0,0 @@ -import 'package:dart_shield/src/security_analyzer/rules/models/models.dart'; -import 'package:test/test.dart'; - -void main() { - group('MatchingPattern', () { - group('constructor', () { - test('creates pattern with name and pattern string', () { - final pattern = MatchingPattern( - name: 'test_pattern', - pattern: r'\d+', - ); - - expect(pattern.name, equals('test_pattern')); - expect(pattern.pattern, equals(r'\d+')); - }); - - test('handles empty name', () { - final pattern = MatchingPattern( - name: '', - pattern: r'\d+', - ); - - expect(pattern.name, equals('')); - expect(pattern.pattern, equals(r'\d+')); - }); - - test('handles empty pattern', () { - final pattern = MatchingPattern( - name: 'test_pattern', - pattern: '', - ); - - expect(pattern.name, equals('test_pattern')); - expect(pattern.pattern, equals('')); - }); - }); - - group('regex property', () { - test('creates RegExp from pattern string', () { - final pattern = MatchingPattern( - name: 'number_pattern', - pattern: r'\d+', - ); - - final regex = pattern.regex; - expect(regex, isA()); - expect(regex.hasMatch('123'), isTrue); - expect(regex.hasMatch('abc'), isFalse); - }); - - test('handles complex regex patterns', () { - final pattern = MatchingPattern( - name: 'email_pattern', - pattern: r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$', - ); - - final regex = pattern.regex; - expect(regex.hasMatch('test@example.com'), isTrue); - expect(regex.hasMatch('invalid-email'), isFalse); - }); - - test('handles special regex characters', () { - final pattern = MatchingPattern( - name: 'special_chars', - pattern: r'[.*+?^${}()|[\]\\]', - ); - - final regex = pattern.regex; - expect(regex.hasMatch('.'), isTrue); - expect(regex.hasMatch('*'), isTrue); - expect(regex.hasMatch('+'), isTrue); - expect(regex.hasMatch('?'), isTrue); - expect(regex.hasMatch('^'), isTrue); - expect(regex.hasMatch(r'$'), isTrue); - expect(regex.hasMatch('{'), isTrue); - expect(regex.hasMatch('}'), isTrue); - expect(regex.hasMatch('('), isTrue); - expect(regex.hasMatch(')'), isTrue); - expect(regex.hasMatch('|'), isTrue); - expect(regex.hasMatch('['), isTrue); - expect(regex.hasMatch(']'), isTrue); - expect(regex.hasMatch(r'\'), isTrue); - }); - - test('handles empty pattern', () { - final pattern = MatchingPattern( - name: 'empty_pattern', - pattern: '', - ); - - final regex = pattern.regex; - expect(regex.hasMatch(''), isTrue); - expect( - regex.hasMatch('any'), - isTrue, - ); // Empty pattern matches everything - }); - - test('handles invalid regex patterns gracefully', () { - final pattern = MatchingPattern( - name: 'invalid_pattern', - pattern: '[unclosed bracket', - ); - - // Should throw FormatException for invalid regex - expect(() => pattern.regex, throwsA(isA())); - }); - }); - - group('fromJson factory', () { - test('creates pattern from valid JSON', () { - final json = { - 'name': 'test_pattern', - 'pattern': r'\d+', - }; - - final pattern = MatchingPattern.fromJson(json); - expect(pattern.name, equals('test_pattern')); - expect(pattern.pattern, equals(r'\d+')); - }); - - test('handles JSON with extra fields', () { - final json = { - 'name': 'test_pattern', - 'pattern': r'\d+', - 'extra_field': 'ignored', - }; - - final pattern = MatchingPattern.fromJson(json); - expect(pattern.name, equals('test_pattern')); - expect(pattern.pattern, equals(r'\d+')); - }); - - test('handles missing fields', () { - final json = {}; - - expect(() => MatchingPattern.fromJson(json), throwsA(isA())); - }); - }); - - group('properties', () { - test('pattern properties are accessible', () { - final pattern = MatchingPattern( - name: 'test_pattern', - pattern: r'\d+', - ); - - expect(pattern.name, equals('test_pattern')); - expect(pattern.pattern, equals(r'\d+')); - expect(pattern.regex, isA()); - }); - }); - }); -} diff --git a/test/unit/security_analyzer/rules/models/shield_secrets_test.dart b/test/unit/security_analyzer/rules/models/shield_secrets_test.dart deleted file mode 100644 index 3b82265..0000000 --- a/test/unit/security_analyzer/rules/models/shield_secrets_test.dart +++ /dev/null @@ -1,200 +0,0 @@ -// ignore_for_file: unnecessary_raw_strings - -import 'package:dart_shield/src/security_analyzer/rules/models/models.dart'; -import 'package:test/test.dart'; - -void main() { - group('ShieldSecrets', () { - group('constructor', () { - test('creates ShieldSecrets with version, secrets, and keys', () { - final secrets = [ - MatchingPattern(name: 'api_key', pattern: r'api[_-]?key'), - MatchingPattern(name: 'secret', pattern: r'secret[_-]?key'), - ]; - final keys = [ - MatchingPattern(name: 'private_key', pattern: r'private[_-]?key'), - ]; - - final shieldSecrets = ShieldSecrets( - version: '1.0.0', - secrets: secrets, - keys: keys, - ); - - expect(shieldSecrets.version, equals('1.0.0')); - expect(shieldSecrets.secrets, equals(secrets)); - expect(shieldSecrets.keys, equals(keys)); - }); - - test('handles empty secrets and keys lists', () { - final shieldSecrets = ShieldSecrets( - version: '1.0.0', - secrets: [], - keys: [], - ); - - expect(shieldSecrets.version, equals('1.0.0')); - expect(shieldSecrets.secrets, isEmpty); - expect(shieldSecrets.keys, isEmpty); - }); - }); - - group('containsSecret', () { - late ShieldSecrets shieldSecrets; - - setUp(() { - shieldSecrets = ShieldSecrets( - version: '1.0.0', - secrets: [ - MatchingPattern(name: 'api_key', pattern: r'api[_-]?key'), - MatchingPattern(name: 'secret', pattern: r'secret[_-]?key'), - ], - keys: [ - MatchingPattern(name: 'private_key', pattern: r'private[_-]?key'), - ], - ); - }); - - test('returns true for values matching secret patterns', () { - expect(shieldSecrets.containsSecret('api_key'), isTrue); - expect(shieldSecrets.containsSecret('api-key'), isTrue); - expect(shieldSecrets.containsSecret('apikey'), isTrue); - expect(shieldSecrets.containsSecret('secret_key'), isTrue); - expect(shieldSecrets.containsSecret('secret-key'), isTrue); - expect(shieldSecrets.containsSecret('secretkey'), isTrue); - }); - - test('returns true for values matching key patterns', () { - expect(shieldSecrets.containsSecret('private_key'), isTrue); - expect(shieldSecrets.containsSecret('private-key'), isTrue); - expect(shieldSecrets.containsSecret('privatekey'), isTrue); - }); - - test('returns false for values not matching any patterns', () { - expect(shieldSecrets.containsSecret('password'), isFalse); - expect(shieldSecrets.containsSecret('token'), isFalse); - expect(shieldSecrets.containsSecret('random_string'), isFalse); - expect(shieldSecrets.containsSecret(''), isFalse); - }); - - test('handles case sensitivity', () { - expect(shieldSecrets.containsSecret('API_KEY'), isFalse); - expect(shieldSecrets.containsSecret('Api_Key'), isFalse); - }); - - test('handles partial matches', () { - expect(shieldSecrets.containsSecret('my_api_key_value'), isTrue); - expect(shieldSecrets.containsSecret('some_secret_key_here'), isTrue); - expect(shieldSecrets.containsSecret('private_key_value'), isTrue); - }); - }); - - group('fromYaml factory', () { - test('creates ShieldSecrets from valid YAML structure', () { - final yamlData = { - 'shield_patterns': { - 'version': '1.0.0', - 'secrets': [ - {'name': 'api_key', 'pattern': r'api[_-]?key'}, - {'name': 'secret', 'pattern': r'secret[_-]?key'}, - ], - 'keys': [ - {'name': 'private_key', 'pattern': r'private[_-]?key'}, - ], - }, - }; - - final shieldSecrets = ShieldSecrets.fromYaml(yamlData); - expect(shieldSecrets.version, equals('1.0.0')); - expect(shieldSecrets.secrets.length, equals(2)); - expect(shieldSecrets.keys.length, equals(1)); - }); - - test('handles YAML with empty lists', () { - final yamlData = { - 'shield_patterns': { - 'version': '1.0.0', - 'secrets': >[], - 'keys': >[], - }, - }; - - final shieldSecrets = ShieldSecrets.fromYaml(yamlData); - expect(shieldSecrets.version, equals('1.0.0')); - expect(shieldSecrets.secrets, isEmpty); - expect(shieldSecrets.keys, isEmpty); - }); - - test('throws for missing shield_patterns key', () { - final yamlData = { - 'version': '1.0.0', - 'secrets': >[], - 'keys': >[], - }; - - expect( - () => ShieldSecrets.fromYaml(yamlData), - throwsA(isA()), - ); - }); - - test('throws for invalid YAML structure', () { - final yamlData = { - 'shield_patterns': 'invalid', - }; - - expect( - () => ShieldSecrets.fromYaml(yamlData), - throwsA(isA()), - ); - }); - }); - - group('preset factory', () { - test('creates ShieldSecrets from preset configuration', () { - final shieldSecrets = ShieldSecrets.preset(); - - expect(shieldSecrets.version, isNotEmpty); - expect(shieldSecrets.secrets, isNotEmpty); - expect(shieldSecrets.keys, isNotEmpty); - }); - - test('preset configuration contains expected patterns', () { - final shieldSecrets = ShieldSecrets.preset(); - - // Test that preset configuration is loaded successfully - expect(shieldSecrets.version, isNotEmpty); - expect(shieldSecrets.secrets, isNotEmpty); - expect(shieldSecrets.keys, isNotEmpty); - - // Test that patterns can detect secrets, without assuming - // specific patterns - // This tests the functionality without depending on - // specific preset content - expect(shieldSecrets.secrets.length, greaterThan(0)); - expect(shieldSecrets.keys.length, greaterThan(0)); - }); - }); - - group('properties', () { - test('ShieldSecrets properties are accessible', () { - final secrets = [ - MatchingPattern(name: 'test', pattern: r'test'), - ]; - final keys = [ - MatchingPattern(name: 'key', pattern: r'key'), - ]; - - final shieldSecrets = ShieldSecrets( - version: '1.0.0', - secrets: secrets, - keys: keys, - ); - - expect(shieldSecrets.version, equals('1.0.0')); - expect(shieldSecrets.secrets, equals(secrets)); - expect(shieldSecrets.keys, equals(keys)); - }); - }); - }); -} diff --git a/test/unit/security_analyzer/rules/rule_registry_test.dart b/test/unit/security_analyzer/rules/rule_registry_test.dart deleted file mode 100644 index 2931d32..0000000 --- a/test/unit/security_analyzer/rules/rule_registry_test.dart +++ /dev/null @@ -1,194 +0,0 @@ -import 'package:dart_shield/src/security_analyzer/rules/enums/enums.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule/lint_rule.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rule_registry.dart'; -import 'package:glob/glob.dart'; -import 'package:test/test.dart'; - -void main() { - group('RuleRegistry', () { - group('createRule', () { - test('creates rule for valid rule ID', () { - final excludes = [Glob('test/**')]; - - final rule = RuleRegistry.createRule( - id: RuleId.avoidHardcodedSecrets, - excludes: excludes, - ); - - expect(rule, isA()); - expect(rule.id, equals(RuleId.avoidHardcodedSecrets)); - expect(rule.excludes, equals(excludes)); - }); - - test('creates rule for all registered rule IDs', () { - final excludes = [Glob('test/**')]; - - for (final ruleId in RuleId.values) { - final rule = RuleRegistry.createRule( - id: ruleId, - excludes: excludes, - ); - - expect(rule, isA()); - expect(rule.id, equals(ruleId)); - expect(rule.excludes, equals(excludes)); - } - }); - - test('creates rule with empty excludes', () { - final rule = RuleRegistry.createRule( - id: RuleId.preferHttpsOverHttp, - excludes: [], - ); - - expect(rule, isA()); - expect(rule.id, equals(RuleId.preferHttpsOverHttp)); - expect(rule.excludes, isEmpty); - }); - - test('creates rule with multiple excludes', () { - final excludes = [ - Glob('test/**'), - Glob('**/*.g.dart'), - Glob('lib/config.dart'), - ]; - - final rule = RuleRegistry.createRule( - id: RuleId.avoidHardcodedUrls, - excludes: excludes, - ); - - expect(rule, isA()); - expect(rule.id, equals(RuleId.avoidHardcodedUrls)); - expect(rule.excludes, equals(excludes)); - expect(rule.excludes.length, equals(3)); - }); - - test('throws ArgumentError for invalid rule ID', () { - expect( - () => RuleRegistry.createRule( - id: RuleId.values.first, // This should work - excludes: [], - ), - returnsNormally, - ); - - // Test with a non-existent rule ID by trying to create a rule - // that doesn't exist in the registry - expect( - () => RuleRegistry.createRule( - id: RuleId.avoidHardcodedSecrets, // This exists - excludes: [], - ), - returnsNormally, - ); - }); - }); - - group('registeredRuleIds', () { - test('returns all registered rule IDs', () { - final registeredIds = RuleRegistry.registeredRuleIds; - - expect(registeredIds.length, equals(RuleId.values.length)); - expect(registeredIds, contains(RuleId.preferHttpsOverHttp)); - expect(registeredIds, contains(RuleId.avoidHardcodedUrls)); - expect(registeredIds, contains(RuleId.avoidHardcodedSecrets)); - expect(registeredIds, contains(RuleId.avoidWeakHashing)); - expect(registeredIds, contains(RuleId.preferSecureRandom)); - }); - - test('returns immutable collection', () { - final registeredIds = RuleRegistry.registeredRuleIds; - - // Should not be able to modify the collection - expect( - () => registeredIds.toList().add(RuleId.preferHttpsOverHttp), - returnsNormally, - ); // This works because we're adding to a copy - }); - - test('contains all expected rule IDs', () { - final registeredIds = RuleRegistry.registeredRuleIds; - - for (final ruleId in RuleId.values) { - expect(registeredIds, contains(ruleId)); - } - }); - }); - - group('rule creation consistency', () { - test('creates same rule type for same ID', () { - final excludes = [Glob('test/**')]; - - final rule1 = RuleRegistry.createRule( - id: RuleId.avoidHardcodedSecrets, - excludes: excludes, - ); - final rule2 = RuleRegistry.createRule( - id: RuleId.avoidHardcodedSecrets, - excludes: excludes, - ); - - expect(rule1.runtimeType, equals(rule2.runtimeType)); - expect(rule1.id, equals(rule2.id)); - expect(rule1.severity, equals(rule2.severity)); - expect(rule1.message, equals(rule2.message)); - }); - - test('creates different rule types for different IDs', () { - final excludes = [Glob('test/**')]; - - final secretRule = RuleRegistry.createRule( - id: RuleId.avoidHardcodedSecrets, - excludes: excludes, - ); - final urlRule = RuleRegistry.createRule( - id: RuleId.avoidHardcodedUrls, - excludes: excludes, - ); - - expect(secretRule.id, equals(RuleId.avoidHardcodedSecrets)); - expect(urlRule.id, equals(RuleId.avoidHardcodedUrls)); - expect(secretRule.id, isNot(equals(urlRule.id))); - }); - }); - - group('rule properties', () { - test('created rules have correct properties', () { - final excludes = [Glob('test/**')]; - - final rule = RuleRegistry.createRule( - id: RuleId.preferHttpsOverHttp, - excludes: excludes, - ); - - expect(rule.id, equals(RuleId.preferHttpsOverHttp)); - expect(rule.excludes, equals(excludes)); - expect(rule.message, isNotEmpty); - expect(rule.severity, isA()); - expect(rule.status, isA()); - }); - - test('rules have appropriate severity levels', () { - final excludes = [Glob('test/**')]; - - final criticalRule = RuleRegistry.createRule( - id: RuleId.avoidHardcodedSecrets, - excludes: excludes, - ); - final warningRule = RuleRegistry.createRule( - id: RuleId.avoidHardcodedUrls, - excludes: excludes, - ); - final infoRule = RuleRegistry.createRule( - id: RuleId.preferHttpsOverHttp, - excludes: excludes, - ); - - expect(criticalRule.severity, equals(Severity.critical)); - expect(warningRule.severity, equals(Severity.warning)); - expect(infoRule.severity, equals(Severity.info)); - }); - }); - }); -} diff --git a/test/unit/security_analyzer/rules/rules_list/crypto/prefer_secure_random_test.dart b/test/unit/security_analyzer/rules/rules_list/crypto/prefer_secure_random_test.dart deleted file mode 100644 index 08f1a33..0000000 --- a/test/unit/security_analyzer/rules/rules_list/crypto/prefer_secure_random_test.dart +++ /dev/null @@ -1,239 +0,0 @@ -import 'dart:io'; - -import 'package:analyzer/dart/analysis/analysis_context_collection.dart'; -import 'package:analyzer/dart/analysis/results.dart'; -import 'package:dart_shield/src/security_analyzer/rules/rules_list/crypto/prefer_secure_random.dart'; -import 'package:path/path.dart' as path; -import 'package:test/test.dart'; - -void main() { - group('PreferSecureRandom', () { - late PreferSecureRandom rule; - - setUp(() { - rule = PreferSecureRandom(excludes: []); - }); - - group('detects insecure Random usage', () { - test('flags Random() constructor as violation', () async { - const code = ''' -import 'dart:math'; - -void main() { - final random = Random(); -} -'''; - - final result = await _analyzeCode(code); - final issues = rule.check(result); - - expect(issues.length, equals(1)); - expect(issues.first.ruleId, equals('prefer_secure_random')); - expect( - issues.first.message, - contains('Random() is not cryptographically safe'), - ); - }); - - test('flags Random() in variable assignment', () async { - const code = ''' -import 'dart:math'; - -void main() { - Random random = Random(); -} -'''; - - final result = await _analyzeCode(code); - final issues = rule.check(result); - - expect(issues.length, equals(1)); - }); - - test('flags Random() in method call', () async { - const code = ''' -import 'dart:math'; - -void generateNumber() { - return Random().nextInt(100); -} -'''; - - final result = await _analyzeCode(code); - final issues = rule.check(result); - - expect(issues.length, equals(1)); - }); - - test('flags multiple Random() instances', () async { - const code = ''' -import 'dart:math'; - -void main() { - final random1 = Random(); - final random2 = Random(); -} -'''; - - final result = await _analyzeCode(code); - final issues = rule.check(result); - - expect(issues.length, equals(2)); - }); - }); - - group('does not flag secure Random usage', () { - test('does not flag Random.secure()', () async { - const code = ''' -import 'dart:math'; - -void main() { - final random = Random.secure(); -} -'''; - - final result = await _analyzeCode(code); - final issues = rule.check(result); - - expect(issues.length, equals(0)); - }); - - test('does not flag Random.secure() in variable assignment', () async { - const code = ''' -import 'dart:math'; - -void main() { - Random random = Random.secure(); -} -'''; - - final result = await _analyzeCode(code); - final issues = rule.check(result); - - expect(issues.length, equals(0)); - }); - - test('does not flag Random.secure() in method call', () async { - const code = ''' -import 'dart:math'; - -void generateNumber() { - return Random.secure().nextInt(100); -} -'''; - - final result = await _analyzeCode(code); - final issues = rule.check(result); - - expect(issues.length, equals(0)); - }); - - test('does not flag other Random methods', () async { - const code = ''' -import 'dart:math'; - -void main() { - final random = Random.secure(); - final value = random.nextInt(100); - final doubleValue = random.nextDouble(); -} -'''; - - final result = await _analyzeCode(code); - final issues = rule.check(result); - - expect(issues.length, equals(0)); - }); - }); - - group('mixed usage scenarios', () { - test('flags only insecure Random() when both are present', () async { - const code = ''' -import 'dart:math'; - -void main() { - final secureRandom = Random.secure(); - final insecureRandom = Random(); -} -'''; - - final result = await _analyzeCode(code); - final issues = rule.check(result); - - expect(issues.length, equals(1)); - }); - - test('handles Random in different scopes', () async { - const code = ''' -import 'dart:math'; - -class RandomGenerator { - Random secureRandom = Random.secure(); - - void generateInsecure() { - final random = Random(); - } - - void generateSecure() { - final random = Random.secure(); - } -} -'''; - - final result = await _analyzeCode(code); - final issues = rule.check(result); - - expect(issues.length, equals(1)); - }); - }); - - group('rule properties', () { - test('has correct rule ID', () { - expect(rule.id.name, equals('preferSecureRandom')); - }); - - test('has correct severity', () { - expect(rule.severity.name, equals('info')); - }); - - test('has correct status', () { - expect(rule.status.name, equals('experimental')); - }); - - test('has appropriate message', () { - expect( - rule.message, - contains('Random() is not cryptographically safe'), - ); - expect(rule.message, contains('Random.secure()')); - }); - }); - }); -} - -/// Helper function to analyze Dart code and return a ResolvedUnitResult -Future _analyzeCode(String code) async { - // Create a temporary file - final tempDir = Directory.systemTemp.createTempSync('dart_shield_test_'); - final tempFile = File(path.join(tempDir.path, 'test.dart')) - ..writeAsStringSync(code); - - try { - // Create analysis context - final collection = AnalysisContextCollection(includedPaths: [tempDir.path]); - final context = collection.contexts.first; - - // Get resolved unit - final result = await context.currentSession.getResolvedUnit(tempFile.path); - - if (result is ResolvedUnitResult) { - return result; - } else { - throw Exception('Failed to resolve unit: $result'); - } - } finally { - // Clean up temporary file - tempFile.deleteSync(); - tempDir.deleteSync(recursive: true); - } -} diff --git a/test/unit/security_analyzer/utils/suppression_test.dart b/test/unit/security_analyzer/utils/suppression_test.dart deleted file mode 100644 index 17537d7..0000000 --- a/test/unit/security_analyzer/utils/suppression_test.dart +++ /dev/null @@ -1,231 +0,0 @@ -import 'package:analyzer/source/line_info.dart'; -import 'package:dart_shield/src/security_analyzer/utils/suppression.dart'; -import 'package:test/test.dart'; - -LineInfo _createLineInfo(String content) { - final lineStarts = []; - for (var i = 0; i < content.length; i++) { - if (i == 0 || content[i - 1] == '\n') { - lineStarts.add(i); - } - } - lineStarts.add(content.length); // End of file - return LineInfo(lineStarts); -} - -void main() { - group('Suppression', () { - group('shield_ignore comments', () { - test('parses single rule on same line', () { - const content = ''' -void main() { - const key = 'secret'; // shield_ignore: avoid_hardcoded_secrets -} -'''; - final lineInfo = _createLineInfo(content); - final suppression = Suppression(content, lineInfo); - - expect( - suppression.isSuppressedAt('avoid_hardcoded_secrets', 2), - isTrue, - ); - expect( - suppression.isSuppressedAt('prefer_https_over_http', 2), - isFalse, - ); - }); - - test('parses single rule on next line', () { - const content = ''' -void main() { - // shield_ignore: avoid_hardcoded_secrets - const key = 'secret'; -} -'''; - final lineInfo = _createLineInfo(content); - final suppression = Suppression(content, lineInfo); - - expect( - suppression.isSuppressedAt('avoid_hardcoded_secrets', 3), - isTrue, - ); - expect( - suppression.isSuppressedAt('prefer_https_over_http', 3), - isFalse, - ); - }); - - test('parses multiple rules in one comment', () { - const content = ''' -void main() { - const key = 'secret'; // shield_ignore: avoid_hardcoded_secrets, prefer_https_over_http -} -'''; - final lineInfo = _createLineInfo(content); - final suppression = Suppression(content, lineInfo); - - expect( - suppression.isSuppressedAt('avoid_hardcoded_secrets', 2), - isTrue, - ); - expect(suppression.isSuppressedAt('prefer_https_over_http', 2), isTrue); - expect(suppression.isSuppressedAt('avoid_weak_hashing', 2), isFalse); - }); - - test('handles case insensitive matching', () { - const content = ''' -void main() { - const key = 'secret'; // shield_ignore: AVOID_HARDCODED_SECRETS -} -'''; - final lineInfo = _createLineInfo(content); - final suppression = Suppression(content, lineInfo); - - expect( - suppression.isSuppressedAt('avoid_hardcoded_secrets', 2), - isTrue, - ); - }); - - test('handles snake_case parsing', () { - const content = ''' -void main() { - const key = 'secret'; // shield_ignore: avoid_hardcoded_secrets -} -'''; - final lineInfo = _createLineInfo(content); - final suppression = Suppression(content, lineInfo); - - expect( - suppression.isSuppressedAt('avoid_hardcoded_secrets', 2), - isTrue, - ); - }); - - test('ignores standard ignore comments', () { - const content = ''' -void main() { - const key = 'secret'; // ignore: avoid_hardcoded_secrets -} -'''; - final lineInfo = _createLineInfo(content); - final suppression = Suppression(content, lineInfo); - - expect( - suppression.isSuppressedAt('avoid_hardcoded_secrets', 2), - isFalse, - ); - }); - }); - - group('shield_ignore_for_file comments', () { - test('parses file-level suppression', () { - const content = ''' -// shield_ignore_for_file: avoid_hardcoded_secrets - -void main() { - const key = 'secret'; -} -'''; - final lineInfo = _createLineInfo(content); - final suppression = Suppression(content, lineInfo); - - expect(suppression.isSuppressed('avoid_hardcoded_secrets'), isTrue); - expect( - suppression.isSuppressedAt('avoid_hardcoded_secrets', 4), - isTrue, - ); - expect( - suppression.isSuppressedAt('prefer_https_over_http', 4), - isFalse, - ); - }); - - test('parses multiple file-level suppressions', () { - const content = ''' -// shield_ignore_for_file: avoid_hardcoded_secrets, prefer_https_over_http - -void main() { - const key = 'secret'; -} -'''; - final lineInfo = _createLineInfo(content); - final suppression = Suppression(content, lineInfo); - - expect(suppression.isSuppressed('avoid_hardcoded_secrets'), isTrue); - expect(suppression.isSuppressed('prefer_https_over_http'), isTrue); - expect(suppression.isSuppressed('avoid_weak_hashing'), isFalse); - }); - - test('handles case insensitive file-level suppression', () { - const content = ''' -// shield_ignore_for_file: AVOID_HARDCODED_SECRETS - -void main() { - const key = 'secret'; -} -'''; - final lineInfo = _createLineInfo(content); - final suppression = Suppression(content, lineInfo); - - expect(suppression.isSuppressed('avoid_hardcoded_secrets'), isTrue); - }); - - test('ignores standard ignore_for_file comments', () { - const content = ''' -// ignore_for_file: avoid_hardcoded_secrets - -void main() { - const key = 'secret'; -} -'''; - final lineInfo = _createLineInfo(content); - final suppression = Suppression(content, lineInfo); - - expect(suppression.isSuppressed('avoid_hardcoded_secrets'), isFalse); - }); - }); - - group('edge cases', () { - test('handles empty content', () { - const content = ''; - final lineInfo = _createLineInfo(content); - final suppression = Suppression(content, lineInfo); - - expect(suppression.isSuppressed('any_rule'), isFalse); - expect(suppression.isSuppressedAt('any_rule', 1), isFalse); - }); - - test('handles whitespace in rule names', () { - const content = ''' -void main() { - const key = 'secret'; // shield_ignore: avoid_hardcoded_secrets , prefer_https_over_http -} -'''; - final lineInfo = _createLineInfo(content); - final suppression = Suppression(content, lineInfo); - - expect( - suppression.isSuppressedAt('avoid_hardcoded_secrets', 2), - isTrue, - ); - expect(suppression.isSuppressedAt('prefer_https_over_http', 2), isTrue); - }); - - test('handles malformed comments gracefully', () { - const content = ''' -void main() { - const key = 'secret'; // shield_ignore: - const url = 'http://example.com'; // shield_ignore: , -} -'''; - final lineInfo = _createLineInfo(content); - final suppression = Suppression(content, lineInfo); - - // Should not crash and should not match anything - expect(suppression.isSuppressedAt('any_rule', 2), isFalse); - expect(suppression.isSuppressedAt('any_rule', 3), isFalse); - }); - }); - }); -} diff --git a/test/unit/security_analyzer/workspace_test.dart b/test/unit/security_analyzer/workspace_test.dart deleted file mode 100644 index 8f19f67..0000000 --- a/test/unit/security_analyzer/workspace_test.dart +++ /dev/null @@ -1,280 +0,0 @@ -import 'dart:io'; - -import 'package:dart_shield/src/security_analyzer/workspace.dart'; -import 'package:path/path.dart' as path; -import 'package:test/test.dart'; - -void main() { - group('Workspace', () { - late Directory tempDir; - late String tempPath; - - setUp(() { - tempDir = Directory.systemTemp.createTempSync('dart_shield_test_'); - tempPath = tempDir.path; - }); - - tearDown(() { - tempDir.deleteSync(recursive: true); - }); - - group('constructor', () { - test('creates workspace with analyzed paths and root folder', () { - final workspace = Workspace( - analyzedPaths: ['lib', 'test'], - rootFolder: tempPath, - ); - - expect(workspace.analyzedPaths, equals(['lib', 'test'])); - expect(workspace.rootFolder, equals(tempPath)); - expect( - workspace.configPath, - equals(path.join(tempPath, 'shield_options.yaml')), - ); - }); - - test('creates workspace with empty analyzed paths', () { - final workspace = Workspace( - analyzedPaths: [], - rootFolder: tempPath, - ); - - expect(workspace.analyzedPaths, isEmpty); - expect(workspace.rootFolder, equals(tempPath)); - }); - - test('creates workspace with single analyzed path', () { - final workspace = Workspace( - analyzedPaths: ['lib'], - rootFolder: tempPath, - ); - - expect(workspace.analyzedPaths, equals(['lib'])); - expect(workspace.rootFolder, equals(tempPath)); - }); - }); - - group('normalizedFolders', () { - test('normalizes analyzed paths relative to root folder', () { - final workspace = Workspace( - analyzedPaths: ['lib', 'test', 'example'], - rootFolder: tempPath, - ); - - final normalizedFolders = workspace.normalizedFolders; - - expect(normalizedFolders.length, equals(3)); - expect(normalizedFolders, contains(path.join(tempPath, 'lib'))); - expect(normalizedFolders, contains(path.join(tempPath, 'test'))); - expect(normalizedFolders, contains(path.join(tempPath, 'example'))); - }); - - test('handles absolute paths in analyzed paths', () { - final absolutePath = path.join(tempPath, 'absolute'); - final workspace = Workspace( - analyzedPaths: [absolutePath, 'relative'], - rootFolder: tempPath, - ); - - final normalizedFolders = workspace.normalizedFolders; - - expect(normalizedFolders.length, equals(2)); - expect(normalizedFolders, contains(absolutePath)); - expect(normalizedFolders, contains(path.join(tempPath, 'relative'))); - }); - - test('handles empty analyzed paths', () { - final workspace = Workspace( - analyzedPaths: [], - rootFolder: tempPath, - ); - - final normalizedFolders = workspace.normalizedFolders; - - expect(normalizedFolders, isEmpty); - }); - - test('handles current directory path', () { - final workspace = Workspace( - analyzedPaths: ['.'], - rootFolder: tempPath, - ); - - final normalizedFolders = workspace.normalizedFolders; - - expect(normalizedFolders.length, equals(1)); - expect(normalizedFolders.first, equals(tempPath)); - }); - }); - - group('configExists', () { - test('returns false when config file does not exist', () { - final workspace = Workspace( - analyzedPaths: [], - rootFolder: tempPath, - ); - - expect(workspace.configExists, isFalse); - }); - - test('returns true when config file exists', () { - final workspace = Workspace( - analyzedPaths: [], - rootFolder: tempPath, - ); - - // Create the config file - File(workspace.configPath).createSync(); - - expect(workspace.configExists, isTrue); - }); - - test('returns false when config path is a directory', () { - final workspace = Workspace( - analyzedPaths: [], - rootFolder: tempPath, - ); - - // Create a directory with the config name - Directory(workspace.configPath).createSync(); - - expect(workspace.configExists, isFalse); - }); - }); - - group('createDefaultConfig', () { - test('creates default config file', () { - final workspace = Workspace( - analyzedPaths: [], - rootFolder: tempPath, - ); - - expect(workspace.configExists, isFalse); - - workspace.createDefaultConfig(); - - expect(workspace.configExists, isTrue); - - final configFile = File(workspace.configPath); - expect(configFile.existsSync(), isTrue); - - final content = configFile.readAsStringSync(); - expect(content, contains('shield:')); - expect(content, contains('rules:')); - expect(content, contains('prefer_https_over_http')); - }); - - test('overwrites existing config file', () { - final workspace = Workspace( - analyzedPaths: [], - rootFolder: tempPath, - ); - - // Create initial config file - File(workspace.configPath).writeAsStringSync('initial content'); - expect(workspace.configExists, isTrue); - - workspace.createDefaultConfig(); - - expect(workspace.configExists, isTrue); - - final content = File(workspace.configPath).readAsStringSync(); - expect(content, isNot(equals('initial content'))); - expect(content, contains('shield:')); - }); - - test('creates config file with correct permissions', () { - final workspace = Workspace( - analyzedPaths: [], - rootFolder: tempPath, - )..createDefaultConfig(); - - final configFile = File(workspace.configPath); - expect(configFile.existsSync(), isTrue); - - // File should be readable - expect(configFile.readAsStringSync, returnsNormally); - }); - }); - - group('configPath', () { - test('config path is correct', () { - final workspace = Workspace( - analyzedPaths: [], - rootFolder: tempPath, - ); - - expect( - workspace.configPath, - equals(path.join(tempPath, 'shield_options.yaml')), - ); - }); - - test('config path uses correct filename', () { - final workspace = Workspace( - analyzedPaths: [], - rootFolder: tempPath, - ); - - expect( - path.basename(workspace.configPath), - equals('shield_options.yaml'), - ); - }); - - test('config path is absolute', () { - final workspace = Workspace( - analyzedPaths: [], - rootFolder: tempPath, - ); - - expect(path.isAbsolute(workspace.configPath), isTrue); - }); - }); - - group('edge cases', () { - test('handles root folder with trailing slash', () { - final rootWithSlash = '$tempPath/'; - final workspace = Workspace( - analyzedPaths: ['lib'], - rootFolder: rootWithSlash, - ); - - expect(workspace.rootFolder, equals(rootWithSlash)); - expect( - workspace.configPath, - equals(path.join(rootWithSlash, 'shield_options.yaml')), - ); - }); - - test('handles analyzed paths with trailing slashes', () { - final workspace = Workspace( - analyzedPaths: ['lib/', 'test/'], - rootFolder: tempPath, - ); - - final normalizedFolders = workspace.normalizedFolders; - - expect(normalizedFolders.length, equals(2)); - expect(normalizedFolders, contains(path.join(tempPath, 'lib'))); - expect(normalizedFolders, contains(path.join(tempPath, 'test'))); - }); - - test('handles analyzed paths with parent directory references', () { - final workspace = Workspace( - analyzedPaths: ['../parent', './current'], - rootFolder: tempPath, - ); - - final normalizedFolders = workspace.normalizedFolders; - - expect(normalizedFolders.length, equals(2)); - expect( - normalizedFolders, - contains(path.join(path.dirname(tempPath), 'parent')), - ); - expect(normalizedFolders, contains(path.join(tempPath, 'current'))); - }); - }); - }); -} diff --git a/test/unit/utils/yaml_test.dart b/test/unit/utils/yaml_test.dart deleted file mode 100644 index 77990f5..0000000 --- a/test/unit/utils/yaml_test.dart +++ /dev/null @@ -1,105 +0,0 @@ -import 'package:dart_shield/src/utils/utils.dart'; -import 'package:test/test.dart'; -import 'package:yaml/yaml.dart'; -import '../../fixtures/configs/yaml_inputs.dart'; - -void main() { - group('yamlToDartMap', () { - test('converts a simple map', () { - final input = loadYaml(yamlSimpleMap); - expect(input, isA()); - - final output = yamlToDartMap(input); - expect(output, equals({'key1': 'value1', 'key2': 'value2'})); - }); - - test('converts a nested map', () { - final input = loadYaml(yamlNestedMap); - expect(input, isA()); - - final output = yamlToDartMap(input); - expect( - output, - equals({ - 'key1': 'value1', - 'key2': {'nestedKey1': 'nestedValue1', 'nestedKey2': 'nestedValue2'}, - }), - ); - }); - - test('converts a simple list', () { - final input = loadYaml(yamlSimpleList); - expect(input, isA()); - - final output = yamlToDartMap(input); - expect(output, equals(['value1', 'value2', 'value3'])); - }); - - test('converts a list of maps', () { - final input = loadYaml(yamlListOfMaps); - expect(input, isA()); - - final output = yamlToDartMap(input); - expect( - output, - equals([ - {'key1': 'value1'}, - {'key2': 'value2'}, - ]), - ); - }); - - test('converts a map with a list', () { - final input = loadYaml(yamlMapWithList); - expect(input, isA()); - - final output = yamlToDartMap(input); - expect( - output, - equals({ - 'key1': 'value1', - 'key2': ['listValue1', 'listValue2'], - }), - ); - }); - - test('converts a nested list of maps', () { - final input = loadYaml(yamlNestedListOfMaps); - expect(input, isA()); - - final output = yamlToDartMap(input); - expect( - output, - equals([ - {'key1': 'value1'}, - [ - {'key2': 'value2'}, - ], - ]), - ); - }); - - test('converts an empty map', () { - final input = loadYaml(yamlEmptyMap); - expect(input, isNull); - - final output = yamlToDartMap(input); - expect(output, isNull); - }); - - test('converts an empty list', () { - final input = loadYaml(yamlEmptyList); - expect(input, isA()); - - final output = yamlToDartMap(input); - expect(output, equals([])); - }); - - test('returns primitive values as-is', () { - expect(yamlToDartMap(123), equals(123)); - expect(yamlToDartMap('string'), equals('string')); - expect(yamlToDartMap(true), isTrue); - expect(yamlToDartMap(null), isNull); - }); - }); -} diff --git a/tool/generate_rules.dart b/tool/generate_rules.dart new file mode 100644 index 0000000..1e3dca4 --- /dev/null +++ b/tool/generate_rules.dart @@ -0,0 +1,95 @@ +// ignore_for_file: avoid_print + +import 'dart:convert'; +import 'dart:io'; + +import 'package:http/http.dart' as http; +import 'package:toml/toml.dart'; + +import 'utils/regex_sanitizer.dart'; + +const _gitleaksUrl = + 'https://raw.githubusercontent.com/gitleaks/gitleaks/master/config/gitleaks.toml'; + +Future main() async { + print('Fetching Gitleaks rules from $_gitleaksUrl...'); + final response = await http.get(Uri.parse(_gitleaksUrl)); + + if (response.statusCode != 200) { + throw Exception('Failed to load rules: ${response.statusCode}'); + } + + print('Parsing TOML...'); + final document = TomlDocument.parse(response.body); + final config = document.toMap(); + final rulesList = config['rules'] as List; + + final validRules = >[]; + var skippedCount = 0; + + for (final rule in rulesList) { + if (rule is! Map) continue; + + final id = rule['id'] as String?; + final description = rule['description'] as String?; + final rawRegex = rule['regex'] as String?; + final keywords = (rule['keywords'] as List?)?.cast() ?? []; + final entropy = (rule['entropy'] as num?)?.toDouble() ?? 0.0; + + if (id == null || description == null || rawRegex == null) { + print('Skipping incomplete rule: $rule'); + skippedCount++; + continue; + } + + // Transpile Regex (Go -> Dart) + final sanitized = RegexSanitizer.sanitize(rawRegex); + + // Validate Regex compatibility with Dart + try { + RegExp( + sanitized.pattern, + caseSensitive: sanitized.caseSensitive, + multiLine: sanitized.multiLine, + ); + } on Exception catch (_) { + print('Skipping rule "$id": Incompatible regex ($rawRegex)'); + skippedCount++; + continue; + } + + validRules.add({ + 'id': id, + 'description': description, + 'pattern': sanitized.pattern, + 'isCaseSensitive': sanitized.caseSensitive, + 'isMultiLine': sanitized.multiLine, + 'keywords': keywords, + 'minEntropy': entropy, + }); + } + + print( + 'Processed ${rulesList.length} rules. ' + 'Valid: ${validRules.length}. Skipped: $skippedCount.', + ); + + final jsonContent = const JsonEncoder.withIndent(' ').convert(validRules); + + // 1. Write JSON file (for distribution) + final jsonFile = File('rules.json'); + await jsonFile.writeAsString(jsonContent); + print('Generated rules.json'); + + // 2. Write Dart file (for embedding) + final dartFile = File('lib/src/generated/fallback_rules.dart'); + final dartContent = + '// GENERATED CODE - DO NOT MODIFY BY HAND\n' + '// Generated by tool/generate_rules.dart\n\n' + "const String fallbackRulesJson = r'''\n" + '$jsonContent' + "\n''';\n"; + + await dartFile.writeAsString(dartContent); + print('Generated lib/src/generated/fallback_rules.dart'); +} diff --git a/tool/utils/regex_sanitizer.dart b/tool/utils/regex_sanitizer.dart new file mode 100644 index 0000000..65ef237 --- /dev/null +++ b/tool/utils/regex_sanitizer.dart @@ -0,0 +1,98 @@ +/// Utility to sanitize and adapt Regex patterns from other languages (Go/PCRE) +/// to Dart's JavaScript-flavored RegExp engine. +/// +/// Dart's [RegExp] is based on JavaScript's regex engine, which is less +/// powerful than PCRE or Go's `regexp` package. This class attempts to bridge +/// the gap by modifying patterns to be compatible, primarily focusing on flags +/// that Dart handles via constructor arguments rather than inline syntax. +class RegexSanitizer { + /// Sanitizes a raw regex string and determines the necessary Dart flags. + /// + /// Returns a [SanitizedRegex] containing the clean pattern string and + /// boolean flags (e.g., `caseSensitive`). + static SanitizedRegex sanitize(String rawPattern) { + var pattern = rawPattern; + var caseSensitive = true; + var multiLine = false; + + // 1. Handle Global Case Insensitivity `(?i)` + // Go/PCRE use `(?i)` at the start (or inline) to enable case insensitivity. + // Dart requires this as a constructor argument: + // `RegExp(p, caseSensitive: false)`. + // + // Strategy: If `(?i)` is present anywhere, we remove it and set + // `caseSensitive` to false globally. This is a safe approximation: + // - Start: `(?i)abc` -> `abc` (caseSensitive: false) [Exact Match] + // - Inline: `abc(?i)def` -> `abcdef` (caseSensitive: false) [Broader] + // (Go matches 'abcDEF', Dart matches 'ABCDEF'. This increases recall + // but might slightly increase false positives, acceptable for scans). + if (pattern.contains('(?i)')) { + caseSensitive = false; + pattern = pattern.replaceAll('(?i)', ''); + } + + // 2. Handle Scoped Case Insensitivity `(?i:...)` + // Go/PCRE allow `(?i:abc)` to make only "abc" case insensitive. + // Dart does not support this. + // + // Strategy: Convert `(?i:...)` to a standard non-capturing group `(?:...)` + // and enable global case insensitivity. + // Impact: Similar to inline flags, this broadens the match to be + // case-insensitive for the *entire* string. + if (pattern.contains('(?i:')) { + caseSensitive = false; + pattern = pattern.replaceAll('(?i:', '(?:'); + } + + // 3. Handle Multi-line flag `(?m)` + // Go/PCRE use `(?m)` to make `^` and `$` match start/end of lines, + // not just string. Dart handles this via `multiLine: true`. + if (pattern.contains('(?m)')) { + multiLine = true; + pattern = pattern.replaceAll('(?m)', ''); + } + + // 4. Handle Scoped Multi-line `(?m:...)` + // Strategy: Convert to non-capturing group and enable global multiLine. + if (pattern.contains('(?m:')) { + multiLine = true; + pattern = pattern.replaceAll('(?m:', '(?:'); + } + + // 5. Handle "Single-line" / Dot-all flag `(?s)` + // Go/PCRE `(?s)` makes `.` match newlines. Dart `dotAll: true` handles this. + if (pattern.contains('(?s)')) { + // Note: Dart's `dotAll` is available. However, we need to pass this back + // to the caller. For now, we'll assume standard DotAll behavior isn't + // critical or handle it later. Let's strip it to allow compilation. + pattern = pattern.replaceAll('(?s)', ''); + // TODO(generate): Return dotAll flag if we update SecretRule to support. + } + + // 6. Handle Scoped Dot-all `(?s:...)` + if (pattern.contains('(?s:')) { + pattern = pattern.replaceAll('(?s:', '(?:'); + } + + // 7. Clean up potential double-escapes or leftover artifacts if necessary. + // (Currently not needed for standard Gitleaks patterns). + + return SanitizedRegex( + pattern: pattern, + caseSensitive: caseSensitive, + multiLine: multiLine, + ); + } +} + +class SanitizedRegex { + SanitizedRegex({ + required this.pattern, + required this.caseSensitive, + required this.multiLine, + }); + + final String pattern; + final bool caseSensitive; + final bool multiLine; +} From 0c53a8b9e3ca0dcce278137b621f6aa52f131799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20Novotn=C3=BD?= <62177414+yardexx@users.noreply.github.com> Date: Sun, 1 Feb 2026 23:22:37 +0100 Subject: [PATCH 2/9] feat: SARIF support (#25) * feat: add SARIF output reporter for GitHub Security integration - Add modular SARIF module (sarif_document, sarif_builder, sarif_reporter) - Map dart_shield severity levels to SARIF levels (high->error, medium->warning, low/info->note) - Support --reporter=sarif CLI option - Add comprehensive tests (29 tests for SARIF module) - Add GitHub Actions integration documentation This enables: - GitHub Security tab integration - PR annotations showing security issues inline - Tracking security issues over time * chore: remove plan files from tracking * refactor: use json_serializable for SARIF models - Split SARIF models into separate files following SARIF 2.1.0 spec - Added json_serializable with explicitToJson for proper nested serialization - Models: SarifDocument, SarifRun, SarifTool, SarifDriver, SarifRule, SarifResult, SarifLocation, SarifPhysicalLocation, SarifRegion, SarifArtifactLocation, SarifMessage, SarifLevel - Updated tests to use new model structure * refactor: extract SARIF into independent local package - Created packages/sarif/ as standalone Dart package - Moved SARIF models and builder to the new package - dart_shield now depends on local sarif package via path - SarifReporter remains in dart_shield as thin adapter - Package can be published separately in the future * chore: configure sarif as workspace package and update dependencies - Add workspace configuration for packages/sarif - Update analyzer to ^10.0.2 and analyzer_plugin to ^0.14.2 - Configure sarif package with resolution: workspace and publish_to: none - Align SDK constraints and update json_serializable to ^6.10.0 * refactor: reorganize utils and simplify SARIF reporter - Move utility files from analyzers/utils/ to src/utils/ - Flatten SARIF reporter to reporters/sarif_reporter.dart - Add Pubspec utility for reading version from pubspec.yaml - Simplify SarifBuilder.buildJson() by removing pretty parameter - Refactor SarifReporter to use functional chain pattern * chore(sarif): enable package publishing * docs: add comprehensive documentation to ShieldRunner Document the main orchestrator class with: - Class-level overview of the 7-step analysis pipeline - Example usage snippet - Constructor and method documentation - Exit code explanations for CI/CD integration * chore: add TODO for configuration management refactoring --- .gitignore | 11 +- analysis_options.yaml | 11 - docs/guides/ci-cd/github-actions.mdx | 170 +++++++++ lib/src/analyzers/code/code_analyzer.dart | 4 +- .../secrets/avoid_hardcoded_secrets.dart | 2 +- lib/src/cli/commands/analyze_command.dart | 2 +- lib/src/core/shield_runner.dart | 76 +++- lib/src/reporters/sarif_reporter.dart | 66 ++++ .../utils/analyzer_result.dart | 0 .../utils/diagnostic_mapper.dart | 2 +- lib/src/{analyzers => }/utils/dto_mapper.dart | 2 +- lib/src/utils/pubspec.dart | 9 + .../utils/shannon_entropy.dart | 0 packages/sarif/README.md | 46 +++ packages/sarif/lib/sarif.dart | 8 + packages/sarif/lib/src/models/models.dart | 15 + .../src/models/sarif_artifact_location.dart | 14 + .../src/models/sarif_artifact_location.g.dart | 11 + .../sarif/lib/src/models/sarif_document.dart | 34 ++ .../lib/src/models/sarif_document.g.dart | 14 + .../sarif/lib/src/models/sarif_driver.dart | 34 ++ .../sarif/lib/src/models/sarif_driver.g.dart | 15 + .../sarif/lib/src/models/sarif_level.dart | 17 + .../sarif/lib/src/models/sarif_location.dart | 20 ++ .../lib/src/models/sarif_location.g.dart | 10 + .../sarif/lib/src/models/sarif_message.dart | 16 + .../sarif/lib/src/models/sarif_message.g.dart | 10 + .../src/models/sarif_physical_location.dart | 27 ++ .../src/models/sarif_physical_location.g.dart | 14 + .../sarif/lib/src/models/sarif_region.dart | 28 ++ .../sarif/lib/src/models/sarif_region.g.dart | 15 + .../sarif/lib/src/models/sarif_result.dart | 36 ++ .../sarif/lib/src/models/sarif_result.g.dart | 22 ++ packages/sarif/lib/src/models/sarif_rule.dart | 34 ++ .../sarif/lib/src/models/sarif_rule.g.dart | 14 + packages/sarif/lib/src/models/sarif_run.dart | 27 ++ .../sarif/lib/src/models/sarif_run.g.dart | 12 + packages/sarif/lib/src/models/sarif_tool.dart | 20 ++ .../sarif/lib/src/models/sarif_tool.g.dart | 11 + packages/sarif/lib/src/sarif_builder.dart | 85 +++++ packages/sarif/pubspec.yaml | 16 + pubspec.yaml | 11 +- .../analyzers/utils/shannon_entropy_test.dart | 2 +- .../reporters/sarif/sarif_builder_test.dart | 336 ++++++++++++++++++ .../reporters/sarif/sarif_reporter_test.dart | 305 ++++++++++++++++ 45 files changed, 1606 insertions(+), 28 deletions(-) delete mode 100644 analysis_options.yaml create mode 100644 docs/guides/ci-cd/github-actions.mdx create mode 100644 lib/src/reporters/sarif_reporter.dart rename lib/src/{analyzers => }/utils/analyzer_result.dart (100%) rename lib/src/{analyzers => }/utils/diagnostic_mapper.dart (95%) rename lib/src/{analyzers => }/utils/dto_mapper.dart (95%) create mode 100644 lib/src/utils/pubspec.dart rename lib/src/{analyzers => }/utils/shannon_entropy.dart (100%) create mode 100644 packages/sarif/README.md create mode 100644 packages/sarif/lib/sarif.dart create mode 100644 packages/sarif/lib/src/models/models.dart create mode 100644 packages/sarif/lib/src/models/sarif_artifact_location.dart create mode 100644 packages/sarif/lib/src/models/sarif_artifact_location.g.dart create mode 100644 packages/sarif/lib/src/models/sarif_document.dart create mode 100644 packages/sarif/lib/src/models/sarif_document.g.dart create mode 100644 packages/sarif/lib/src/models/sarif_driver.dart create mode 100644 packages/sarif/lib/src/models/sarif_driver.g.dart create mode 100644 packages/sarif/lib/src/models/sarif_level.dart create mode 100644 packages/sarif/lib/src/models/sarif_location.dart create mode 100644 packages/sarif/lib/src/models/sarif_location.g.dart create mode 100644 packages/sarif/lib/src/models/sarif_message.dart create mode 100644 packages/sarif/lib/src/models/sarif_message.g.dart create mode 100644 packages/sarif/lib/src/models/sarif_physical_location.dart create mode 100644 packages/sarif/lib/src/models/sarif_physical_location.g.dart create mode 100644 packages/sarif/lib/src/models/sarif_region.dart create mode 100644 packages/sarif/lib/src/models/sarif_region.g.dart create mode 100644 packages/sarif/lib/src/models/sarif_result.dart create mode 100644 packages/sarif/lib/src/models/sarif_result.g.dart create mode 100644 packages/sarif/lib/src/models/sarif_rule.dart create mode 100644 packages/sarif/lib/src/models/sarif_rule.g.dart create mode 100644 packages/sarif/lib/src/models/sarif_run.dart create mode 100644 packages/sarif/lib/src/models/sarif_run.g.dart create mode 100644 packages/sarif/lib/src/models/sarif_tool.dart create mode 100644 packages/sarif/lib/src/models/sarif_tool.g.dart create mode 100644 packages/sarif/lib/src/sarif_builder.dart create mode 100644 packages/sarif/pubspec.yaml create mode 100644 test/src/reporters/sarif/sarif_builder_test.dart create mode 100644 test/src/reporters/sarif/sarif_reporter_test.dart diff --git a/.gitignore b/.gitignore index 52632d5..031a8f2 100644 --- a/.gitignore +++ b/.gitignore @@ -22,9 +22,14 @@ coverage/ # Project .gemini/ -GEMINI.md -ROADMAP.md -RULES_CATEGORIZATION.md + +# Ignore all .md files in root except README.md and CHANGELOG.md +/*.md +!README.md +!CHANGELOG.md + +# Feature planning documents (local only) +/features/ # Custom code_examples/ \ No newline at end of file diff --git a/analysis_options.yaml b/analysis_options.yaml deleted file mode 100644 index d8356b6..0000000 --- a/analysis_options.yaml +++ /dev/null @@ -1,11 +0,0 @@ -include: package:very_good_analysis/analysis_options.yaml - -analyzer: - errors: - document_ignores: ignore - exclude: - - '**.g.dart' -linter: - rules: - public_member_api_docs: false - flutter_style_todos: false diff --git a/docs/guides/ci-cd/github-actions.mdx b/docs/guides/ci-cd/github-actions.mdx new file mode 100644 index 0000000..a15fc91 --- /dev/null +++ b/docs/guides/ci-cd/github-actions.mdx @@ -0,0 +1,170 @@ +--- +title: GitHub Actions Integration +description: How to integrate dart_shield with GitHub Actions and the Security tab +--- + +# GitHub Actions Integration + +dart_shield can integrate with GitHub's code scanning features through SARIF (Static Analysis Results Interchange Format) output. This enables: + +- Security issues appearing in the GitHub Security tab +- PR annotations showing security issues inline +- Tracking security issues over time +- Integration with enterprise security dashboards + +## Basic Setup + +Add dart_shield to your GitHub Actions workflow: + +```yaml +name: Security Scan + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + security: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: dart-lang/setup-dart@v1 + with: + sdk: stable + + - name: Install dependencies + run: dart pub get + + - name: Install dart_shield + run: dart pub global activate dart_shield + + - name: Run dart_shield + run: dart_shield analyze --reporter=sarif > results.sarif + + - name: Upload SARIF to GitHub + uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: results.sarif +``` + +## Upload SARIF to GitHub Security + +The key step is uploading the SARIF file to GitHub: + +```yaml +- name: Run dart_shield + run: dart_shield analyze --reporter=sarif > results.sarif + +- name: Upload SARIF + uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: results.sarif +``` + +## Fail on High Severity Issues + +To fail the build when high-severity issues are found: + +```yaml +- name: Run dart_shield + run: | + dart_shield analyze --reporter=sarif --min-severity=high > results.sarif + # Exit code will be non-zero if issues are found + continue-on-error: true + id: shield + +- name: Upload SARIF + uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: results.sarif + +- name: Check for failures + if: steps.shield.outcome == 'failure' + run: exit 1 +``` + +## Full Example with Multiple Outputs + +```yaml +name: Security Analysis + +on: + push: + branches: [main, develop] + pull_request: + +permissions: + security-events: write + contents: read + +jobs: + dart-shield: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: dart-lang/setup-dart@v1 + with: + sdk: stable + + - name: Install dependencies + run: dart pub get + + - name: Install dart_shield + run: dart pub global activate dart_shield + + - name: Run security analysis + run: dart_shield analyze --reporter=sarif > results.sarif + continue-on-error: true + + - name: Upload SARIF results + uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: results.sarif + category: dart-shield + + - name: Upload SARIF as artifact + uses: actions/upload-artifact@v4 + with: + name: sarif-results + path: results.sarif +``` + +## Required Permissions + +For the SARIF upload to work, your workflow needs the `security-events: write` permission: + +```yaml +permissions: + security-events: write + contents: read +``` + +## Viewing Results + +After the workflow runs: + +1. Go to your repository on GitHub +2. Click the **Security** tab +3. Click **Code scanning alerts** in the sidebar +4. View dart_shield findings alongside other security tools + +## Troubleshooting + +### SARIF upload fails + +Ensure your repository has GitHub Advanced Security enabled (required for private repositories) or is a public repository. + +### No results appearing + +Check that: +- The SARIF file is not empty +- The workflow has `security-events: write` permission +- The `sarif_file` path is correct + +### Results not showing in PR + +SARIF results are uploaded to the default branch first. Run the workflow on your default branch before expecting results in PRs. diff --git a/lib/src/analyzers/code/code_analyzer.dart b/lib/src/analyzers/code/code_analyzer.dart index f6e8638..677001d 100644 --- a/lib/src/analyzers/code/code_analyzer.dart +++ b/lib/src/analyzers/code/code_analyzer.dart @@ -4,8 +4,8 @@ import 'dart:io'; import 'package:collection/collection.dart'; import 'package:dart_shield/src/analyzers/analyzer.dart'; import 'package:dart_shield/src/analyzers/code/rules/rules.dart'; -import 'package:dart_shield/src/analyzers/utils/analyzer_result.dart'; -import 'package:dart_shield/src/analyzers/utils/dto_mapper.dart'; +import 'package:dart_shield/src/utils/analyzer_result.dart'; +import 'package:dart_shield/src/utils/dto_mapper.dart'; import 'package:dart_shield/src/domain/analysis_issue.dart'; import 'package:dart_shield/src/domain/analyzer_result.dart'; import 'package:dart_shield/src/domain/exceptions.dart'; diff --git a/lib/src/analyzers/code/rules/secrets/avoid_hardcoded_secrets.dart b/lib/src/analyzers/code/rules/secrets/avoid_hardcoded_secrets.dart index 8f88b83..b2cce34 100644 --- a/lib/src/analyzers/code/rules/secrets/avoid_hardcoded_secrets.dart +++ b/lib/src/analyzers/code/rules/secrets/avoid_hardcoded_secrets.dart @@ -5,7 +5,7 @@ import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/ast/visitor.dart'; import 'package:analyzer/error/error.dart'; import 'package:dart_shield/src/analyzers/code/rules/secrets/rule_provider.dart'; -import 'package:dart_shield/src/analyzers/utils/shannon_entropy.dart'; +import 'package:dart_shield/src/utils/shannon_entropy.dart'; class AvoidHardcodedSecrets extends AnalysisRule { AvoidHardcodedSecrets() diff --git a/lib/src/cli/commands/analyze_command.dart b/lib/src/cli/commands/analyze_command.dart index b20f631..3a428e6 100644 --- a/lib/src/cli/commands/analyze_command.dart +++ b/lib/src/cli/commands/analyze_command.dart @@ -9,7 +9,7 @@ class AnalyzeCommand extends ShieldCommand { ..addOption( 'reporter', abbr: 'r', - allowed: ['console', 'json', 'both'], + allowed: ['console', 'json', 'sarif'], defaultsTo: 'console', help: 'Select the output format.', ) diff --git a/lib/src/core/shield_runner.dart b/lib/src/core/shield_runner.dart index 59663b7..8e1ad2e 100644 --- a/lib/src/core/shield_runner.dart +++ b/lib/src/core/shield_runner.dart @@ -8,19 +8,65 @@ import 'package:dart_shield/src/domain/exceptions.dart'; import 'package:dart_shield/src/reporters/console_reporter.dart'; import 'package:dart_shield/src/reporters/json_reporter.dart'; import 'package:dart_shield/src/reporters/reporter.dart'; +import 'package:dart_shield/src/reporters/sarif_reporter.dart'; import 'package:mason_logger/mason_logger.dart'; +/// The main orchestrator for running security analysis on Dart/Flutter projects. +/// +/// [ShieldRunner] coordinates the entire analysis pipeline: +/// 1. Configures logging based on the output format +/// 2. Loads project configuration from the configuration file +/// 3. Resolves which analyzers to run based on configuration and CLI flags +/// 4. Executes all selected analyzers via [AnalyzerEngine] +/// 5. Filters results by minimum severity threshold +/// 6. Reports findings using the specified reporter (console, JSON, or SARIF) +/// 7. Determines the appropriate exit code based on results +/// +/// Example usage: +/// ```dart +/// final runner = ShieldRunner(); +/// final exitCode = await runner.run( +/// ShieldRunConfig( +/// paths: ['lib/'], +/// reporterMode: 'console', +/// minSeverity: Severity.warning, +/// ), +/// ); +/// ``` class ShieldRunner { + /// Creates a new [ShieldRunner] instance. + /// + /// If [logger] is not provided, a default [Logger] instance is created. + /// The logger is used for progress information and error reporting. ShieldRunner({Logger? logger}) : _logger = logger ?? Logger(); + final Logger _logger; + /// Executes the security analysis pipeline. + /// + /// Takes a [runConfig] containing all runtime configuration options including: + /// - Target paths to analyze + /// - Reporter mode (console, json, sarif) + /// - Minimum severity threshold + /// - Analyzer include/exclude filters + /// + /// Returns an exit code indicating the result: + /// - `0` ([ExitCode.success]) - Analysis completed with no issues + /// - `64` ([ExitCode.config]) - Configuration error (e.g., no analyzers selected) + /// - `70` ([ExitCode.software]) - Issues found or analysis failure + /// + /// Handles exceptions gracefully: + /// - [ShieldException] subclasses are logged with appropriate exit codes + /// - Unexpected errors are logged with stack traces Future run(ShieldRunConfig runConfig) async { try { // 1. Logger Hygiene - if (runConfig.reporterMode == 'json') { + if (runConfig.reporterMode == 'json' || + runConfig.reporterMode == 'sarif') { _logger.level = Level.error; } + // TODO: Rethink configuration management - RunConfig vs ShieldConfig. Maybe single ComposeConfig class? // 2. Load Configuration final fileConfig = await ShieldConfig.load(); @@ -63,8 +109,14 @@ class ShieldRunner { } } - /// Filters analysis results to only include issues at or above the minimum - /// severity level. + /// Filters analysis results to include only issues meeting the severity + /// threshold. + /// + /// For each [AnalysisSuccess] result, removes issues with severity below + /// [minSeverity]. [AnalysisFailure] results pass through unchanged. + /// + /// Severity comparison uses index ordering where lower index = higher + /// severity (e.g., `error` < `warning` < `info`). List _filterBySeverity( List results, Severity minSeverity, @@ -84,14 +136,32 @@ class ShieldRunner { }).toList(); } + /// Returns the list of reporters for the specified output [mode]. + /// + /// Supported modes: + /// - `'json'` - Outputs results as JSON for programmatic consumption + /// - `'sarif'` - Outputs results in SARIF format for CI/CD integration + /// - `'console'` - Human-readable console output (default) + /// + /// Falls back to [ConsoleReporter] for unrecognized modes. List _getReporters(String mode) { return switch (mode) { 'json' => [JsonReporter()], + 'sarif' => [SarifReporter()], 'console' => [ConsoleReporter()], _ => [ConsoleReporter()], }; } + /// Determines the appropriate exit code based on analysis [results]. + /// + /// Returns: + /// - [ExitCode.software] (70) if any analyzer failed to complete + /// - [ExitCode.software] (70) if any security issues were found + /// - [ExitCode.success] (0) if all analyzers completed with no issues + /// + /// This exit code strategy allows CI/CD pipelines to fail builds when + /// security vulnerabilities are detected. int _calculateExitCode(List results) { if (results.any((r) => r is AnalysisFailure)) { return ExitCode.software.code; diff --git a/lib/src/reporters/sarif_reporter.dart b/lib/src/reporters/sarif_reporter.dart new file mode 100644 index 0000000..6c0f964 --- /dev/null +++ b/lib/src/reporters/sarif_reporter.dart @@ -0,0 +1,66 @@ +import 'dart:io'; + +import 'package:dart_shield/src/domain/analysis_issue.dart'; +import 'package:dart_shield/src/domain/analyzer_result.dart'; +import 'package:dart_shield/src/domain/issue_context.dart'; +import 'package:dart_shield/src/reporters/reporter.dart'; +import 'package:dart_shield/src/utils/pubspec.dart'; + +import 'package:meta/meta.dart'; +import 'package:sarif/sarif.dart'; + +/// SARIF reporter that adapts dart_shield results to SARIF format. +/// +/// This is a thin adapter - all SARIF logic lives in [SarifBuilder]. +class SarifReporter implements Reporter { + @override + String get id => 'sarif'; + + @override + Future report(List results) async { + final sarif = generateSarif(results); + stdout.writeln(sarif); + } + + /// Generate SARIF JSON from analysis results. + @visibleForTesting + String generateSarif(List results) { + final builder = SarifBuilder( + toolName: 'dart_shield', + toolVersion: Pubspec.version(), + toolUri: 'https://github.com/yardexx/dart_shield', + ); + + // Extract all issues from successful analyses and add them to builder + results + .whereType() + .expand((r) => r.issues) + .forEach((issue) => _addIssue(builder, issue)); + + return builder.buildJson(); + } + + /// Add an [AnalysisIssue] to the SARIF builder. + void _addIssue(SarifBuilder builder, AnalysisIssue issue) { + final FileContext(:filePath, :line, :column) = issue.context as FileContext; + + builder.addResult( + ruleId: issue.ruleId, + message: issue.message, + level: _mapSeverity(issue.severity), + filePath: filePath, + line: line, + column: column, + ); + } + + /// Map dart_shield Severity to SARIF Level. + SarifLevel _mapSeverity(Severity severity) { + return switch (severity) { + Severity.high => SarifLevel.error, + Severity.medium => SarifLevel.warning, + Severity.low => SarifLevel.note, + Severity.info => SarifLevel.note, + }; + } +} diff --git a/lib/src/analyzers/utils/analyzer_result.dart b/lib/src/utils/analyzer_result.dart similarity index 100% rename from lib/src/analyzers/utils/analyzer_result.dart rename to lib/src/utils/analyzer_result.dart diff --git a/lib/src/analyzers/utils/diagnostic_mapper.dart b/lib/src/utils/diagnostic_mapper.dart similarity index 95% rename from lib/src/analyzers/utils/diagnostic_mapper.dart rename to lib/src/utils/diagnostic_mapper.dart index c18615e..45de455 100644 --- a/lib/src/analyzers/utils/diagnostic_mapper.dart +++ b/lib/src/utils/diagnostic_mapper.dart @@ -9,7 +9,7 @@ extension DiagnosticMapper on analyzer.Diagnostic { final location = lineInfo.getLocation(offset); return AnalysisIssue( - ruleId: diagnosticCode.name.toLowerCase(), + ruleId: diagnosticCode.lowerCaseName, severity: _mapSeverity(severity), message: problemMessage.messageText.toString(), context: FileContext( diff --git a/lib/src/analyzers/utils/dto_mapper.dart b/lib/src/utils/dto_mapper.dart similarity index 95% rename from lib/src/analyzers/utils/dto_mapper.dart rename to lib/src/utils/dto_mapper.dart index 739ef01..867ac13 100644 --- a/lib/src/analyzers/utils/dto_mapper.dart +++ b/lib/src/utils/dto_mapper.dart @@ -1,5 +1,5 @@ import 'package:dart_shield/src/analyzers/code/rules/rule_metadata.dart'; -import 'package:dart_shield/src/analyzers/utils/analyzer_result.dart'; +import 'package:dart_shield/src/utils/analyzer_result.dart'; import 'package:dart_shield/src/domain/analysis_issue.dart'; import 'package:dart_shield/src/domain/issue_context.dart'; diff --git a/lib/src/utils/pubspec.dart b/lib/src/utils/pubspec.dart new file mode 100644 index 0000000..b21c5c8 --- /dev/null +++ b/lib/src/utils/pubspec.dart @@ -0,0 +1,9 @@ +import 'dart:io'; + +class Pubspec { + static String version() { + final pubspec = File('pubspec.yaml').readAsStringSync(); + final version = pubspec.split('version: ')[1].split('\n')[0].trim(); + return version; + } +} \ No newline at end of file diff --git a/lib/src/analyzers/utils/shannon_entropy.dart b/lib/src/utils/shannon_entropy.dart similarity index 100% rename from lib/src/analyzers/utils/shannon_entropy.dart rename to lib/src/utils/shannon_entropy.dart diff --git a/packages/sarif/README.md b/packages/sarif/README.md new file mode 100644 index 0000000..b84979e --- /dev/null +++ b/packages/sarif/README.md @@ -0,0 +1,46 @@ +# SARIF + +A Dart library for creating SARIF 2.1.0 (Static Analysis Results Interchange Format) documents. + +## Features + +- Complete SARIF 2.1.0 data model +- Fluent builder API for easy document creation +- JSON serialization via `json_serializable` +- No external dependencies beyond `json_annotation` + +## Usage + +```dart +import 'package:sarif/sarif.dart'; + +void main() { + final builder = SarifBuilder( + toolName: 'my_analyzer', + toolVersion: '1.0.0', + toolUri: 'https://example.com/my_analyzer', + ); + + builder.addResult( + ruleId: 'no_hardcoded_secrets', + message: 'Hardcoded API key detected', + level: SarifLevel.error, + filePath: 'lib/config.dart', + line: 10, + column: 5, + ruleDescription: 'Detects hardcoded secrets in source code', + ruleHelpUri: 'https://example.com/rules/no_hardcoded_secrets', + ); + + final json = builder.buildJson(); + print(json); +} +``` + +## SARIF Specification + +This library implements the [SARIF 2.1.0 specification](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html). + +## License + +MIT diff --git a/packages/sarif/lib/sarif.dart b/packages/sarif/lib/sarif.dart new file mode 100644 index 0000000..0df0f4f --- /dev/null +++ b/packages/sarif/lib/sarif.dart @@ -0,0 +1,8 @@ +/// SARIF 2.1.0 (Static Analysis Results Interchange Format) library. +/// +/// This library provides data structures and a builder for creating +/// SARIF-compliant documents for static analysis tools. +library; + +export 'src/models/models.dart'; +export 'src/sarif_builder.dart'; diff --git a/packages/sarif/lib/src/models/models.dart b/packages/sarif/lib/src/models/models.dart new file mode 100644 index 0000000..4788e87 --- /dev/null +++ b/packages/sarif/lib/src/models/models.dart @@ -0,0 +1,15 @@ +/// SARIF 2.1.0 data models. +library; + +export 'sarif_artifact_location.dart'; +export 'sarif_document.dart'; +export 'sarif_driver.dart'; +export 'sarif_level.dart'; +export 'sarif_location.dart'; +export 'sarif_message.dart'; +export 'sarif_physical_location.dart'; +export 'sarif_region.dart'; +export 'sarif_result.dart'; +export 'sarif_rule.dart'; +export 'sarif_run.dart'; +export 'sarif_tool.dart'; diff --git a/packages/sarif/lib/src/models/sarif_artifact_location.dart b/packages/sarif/lib/src/models/sarif_artifact_location.dart new file mode 100644 index 0000000..9fcaff9 --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_artifact_location.dart @@ -0,0 +1,14 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'sarif_artifact_location.g.dart'; + +/// Specifies the location of an artifact. +@JsonSerializable(includeIfNull: false, createFactory: false) +class SarifArtifactLocation { + SarifArtifactLocation({required this.uri}); + + /// A URI that identifies the artifact. + final String uri; + + Map toJson() => _$SarifArtifactLocationToJson(this); +} diff --git a/packages/sarif/lib/src/models/sarif_artifact_location.g.dart b/packages/sarif/lib/src/models/sarif_artifact_location.g.dart new file mode 100644 index 0000000..d5e6c6d --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_artifact_location.g.dart @@ -0,0 +1,11 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'sarif_artifact_location.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Map _$SarifArtifactLocationToJson( + SarifArtifactLocation instance, +) => {'uri': instance.uri}; diff --git a/packages/sarif/lib/src/models/sarif_document.dart b/packages/sarif/lib/src/models/sarif_document.dart new file mode 100644 index 0000000..7205775 --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_document.dart @@ -0,0 +1,34 @@ +import 'package:json_annotation/json_annotation.dart'; + +import 'package:sarif/src/models/sarif_run.dart'; + +part 'sarif_document.g.dart'; + +/// A SARIF 2.1.0 document. +@JsonSerializable( + includeIfNull: false, + createFactory: false, + explicitToJson: true, +) +class SarifDocument { + SarifDocument({required this.runs}); + + /// SARIF schema URL. + @JsonKey(name: r'$schema') + final String schema = _schema; + + /// SARIF version. + final String version = _version; + + /// The runs contained in this document. + final List runs; + + /// The SARIF schema URL. + static const String _schema = + 'https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json'; + + /// The SARIF version. + static const String _version = '2.1.0'; + + Map toJson() => _$SarifDocumentToJson(this); +} diff --git a/packages/sarif/lib/src/models/sarif_document.g.dart b/packages/sarif/lib/src/models/sarif_document.g.dart new file mode 100644 index 0000000..3fb9379 --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_document.g.dart @@ -0,0 +1,14 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'sarif_document.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Map _$SarifDocumentToJson(SarifDocument instance) => + { + r'$schema': instance.schema, + 'version': instance.version, + 'runs': instance.runs.map((e) => e.toJson()).toList(), + }; diff --git a/packages/sarif/lib/src/models/sarif_driver.dart b/packages/sarif/lib/src/models/sarif_driver.dart new file mode 100644 index 0000000..d83a336 --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_driver.dart @@ -0,0 +1,34 @@ +import 'package:json_annotation/json_annotation.dart'; + +import 'package:sarif/src/models/sarif_rule.dart'; + +part 'sarif_driver.g.dart'; + +/// The tool component that performed the analysis. +@JsonSerializable( + includeIfNull: false, + createFactory: false, + explicitToJson: true, +) +class SarifDriver { + SarifDriver({ + required this.name, + required this.version, + required this.informationUri, + this.rules = const [], + }); + + /// The name of the tool. + final String name; + + /// The version of the tool. + final String version; + + /// A URI where the tool can be found. + final String informationUri; + + /// The rules defined by the tool. + final List rules; + + Map toJson() => _$SarifDriverToJson(this); +} diff --git a/packages/sarif/lib/src/models/sarif_driver.g.dart b/packages/sarif/lib/src/models/sarif_driver.g.dart new file mode 100644 index 0000000..cdb8da1 --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_driver.g.dart @@ -0,0 +1,15 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'sarif_driver.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Map _$SarifDriverToJson(SarifDriver instance) => + { + 'name': instance.name, + 'version': instance.version, + 'informationUri': instance.informationUri, + 'rules': instance.rules.map((e) => e.toJson()).toList(), + }; diff --git a/packages/sarif/lib/src/models/sarif_level.dart b/packages/sarif/lib/src/models/sarif_level.dart new file mode 100644 index 0000000..c8c079c --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_level.dart @@ -0,0 +1,17 @@ +import 'package:json_annotation/json_annotation.dart'; + +/// SARIF severity levels. +@JsonEnum(alwaysCreate: true) +enum SarifLevel { + /// An error. + error, + + /// A warning. + warning, + + /// A note (informational). + note, + + /// No level assigned. + none, +} diff --git a/packages/sarif/lib/src/models/sarif_location.dart b/packages/sarif/lib/src/models/sarif_location.dart new file mode 100644 index 0000000..8da1170 --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_location.dart @@ -0,0 +1,20 @@ +import 'package:json_annotation/json_annotation.dart'; + +import 'package:sarif/src/models/sarif_physical_location.dart'; + +part 'sarif_location.g.dart'; + +/// A location in a SARIF result. +@JsonSerializable( + includeIfNull: false, + createFactory: false, + explicitToJson: true, +) +class SarifLocation { + SarifLocation({required this.physicalLocation}); + + /// The physical location. + final SarifPhysicalLocation physicalLocation; + + Map toJson() => _$SarifLocationToJson(this); +} diff --git a/packages/sarif/lib/src/models/sarif_location.g.dart b/packages/sarif/lib/src/models/sarif_location.g.dart new file mode 100644 index 0000000..1cae40b --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_location.g.dart @@ -0,0 +1,10 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'sarif_location.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Map _$SarifLocationToJson(SarifLocation instance) => + {'physicalLocation': instance.physicalLocation.toJson()}; diff --git a/packages/sarif/lib/src/models/sarif_message.dart b/packages/sarif/lib/src/models/sarif_message.dart new file mode 100644 index 0000000..00ee93a --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_message.dart @@ -0,0 +1,16 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'sarif_message.g.dart'; + +/// A message in SARIF format. +/// +/// SARIF messages contain at minimum a `text` field. +@JsonSerializable(includeIfNull: false, createFactory: false) +class SarifMessage { + SarifMessage({required this.text}); + + /// The message text. + final String text; + + Map toJson() => _$SarifMessageToJson(this); +} diff --git a/packages/sarif/lib/src/models/sarif_message.g.dart b/packages/sarif/lib/src/models/sarif_message.g.dart new file mode 100644 index 0000000..2d7d466 --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_message.g.dart @@ -0,0 +1,10 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'sarif_message.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Map _$SarifMessageToJson(SarifMessage instance) => + {'text': instance.text}; diff --git a/packages/sarif/lib/src/models/sarif_physical_location.dart b/packages/sarif/lib/src/models/sarif_physical_location.dart new file mode 100644 index 0000000..f960313 --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_physical_location.dart @@ -0,0 +1,27 @@ +import 'package:json_annotation/json_annotation.dart'; + +import 'package:sarif/src/models/sarif_artifact_location.dart'; +import 'package:sarif/src/models/sarif_region.dart'; + +part 'sarif_physical_location.g.dart'; + +/// A physical location in an artifact. +@JsonSerializable( + includeIfNull: false, + createFactory: false, + explicitToJson: true, +) +class SarifPhysicalLocation { + SarifPhysicalLocation({ + required this.artifactLocation, + required this.region, + }); + + /// The artifact location. + final SarifArtifactLocation artifactLocation; + + /// The region within the artifact. + final SarifRegion region; + + Map toJson() => _$SarifPhysicalLocationToJson(this); +} diff --git a/packages/sarif/lib/src/models/sarif_physical_location.g.dart b/packages/sarif/lib/src/models/sarif_physical_location.g.dart new file mode 100644 index 0000000..bdbdc35 --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_physical_location.g.dart @@ -0,0 +1,14 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'sarif_physical_location.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Map _$SarifPhysicalLocationToJson( + SarifPhysicalLocation instance, +) => { + 'artifactLocation': instance.artifactLocation.toJson(), + 'region': instance.region.toJson(), +}; diff --git a/packages/sarif/lib/src/models/sarif_region.dart b/packages/sarif/lib/src/models/sarif_region.dart new file mode 100644 index 0000000..f1119be --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_region.dart @@ -0,0 +1,28 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'sarif_region.g.dart'; + +/// A region within an artifact. +@JsonSerializable(includeIfNull: false, createFactory: false) +class SarifRegion { + SarifRegion({ + required this.startLine, + required this.startColumn, + this.endLine, + this.endColumn, + }); + + /// The line number of the first character in the region (1-based). + final int startLine; + + /// The column number of the first character in the region (1-based). + final int startColumn; + + /// The line number of the last character in the region (1-based). + final int? endLine; + + /// The column number of the last character in the region (1-based). + final int? endColumn; + + Map toJson() => _$SarifRegionToJson(this); +} diff --git a/packages/sarif/lib/src/models/sarif_region.g.dart b/packages/sarif/lib/src/models/sarif_region.g.dart new file mode 100644 index 0000000..7dcef5f --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_region.g.dart @@ -0,0 +1,15 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'sarif_region.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Map _$SarifRegionToJson(SarifRegion instance) => + { + 'startLine': instance.startLine, + 'startColumn': instance.startColumn, + 'endLine': ?instance.endLine, + 'endColumn': ?instance.endColumn, + }; diff --git a/packages/sarif/lib/src/models/sarif_result.dart b/packages/sarif/lib/src/models/sarif_result.dart new file mode 100644 index 0000000..892effe --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_result.dart @@ -0,0 +1,36 @@ +import 'package:json_annotation/json_annotation.dart'; + +import 'package:sarif/src/models/sarif_level.dart'; +import 'package:sarif/src/models/sarif_location.dart'; +import 'package:sarif/src/models/sarif_message.dart'; + +part 'sarif_result.g.dart'; + +/// A single result (finding) in a SARIF document. +@JsonSerializable( + includeIfNull: false, + createFactory: false, + explicitToJson: true, +) +class SarifResult { + SarifResult({ + required this.ruleId, + required this.level, + required this.message, + required this.locations, + }); + + /// The rule that produced this result. + final String ruleId; + + /// The severity level. + final SarifLevel level; + + /// The message describing the result. + final SarifMessage message; + + /// The locations where the result was found. + final List locations; + + Map toJson() => _$SarifResultToJson(this); +} diff --git a/packages/sarif/lib/src/models/sarif_result.g.dart b/packages/sarif/lib/src/models/sarif_result.g.dart new file mode 100644 index 0000000..95743cd --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_result.g.dart @@ -0,0 +1,22 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'sarif_result.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Map _$SarifResultToJson(SarifResult instance) => + { + 'ruleId': instance.ruleId, + 'level': _$SarifLevelEnumMap[instance.level]!, + 'message': instance.message.toJson(), + 'locations': instance.locations.map((e) => e.toJson()).toList(), + }; + +const _$SarifLevelEnumMap = { + SarifLevel.error: 'error', + SarifLevel.warning: 'warning', + SarifLevel.note: 'note', + SarifLevel.none: 'none', +}; diff --git a/packages/sarif/lib/src/models/sarif_rule.dart b/packages/sarif/lib/src/models/sarif_rule.dart new file mode 100644 index 0000000..458bf52 --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_rule.dart @@ -0,0 +1,34 @@ +import 'package:json_annotation/json_annotation.dart'; + +import 'package:sarif/src/models/sarif_message.dart'; + +part 'sarif_rule.g.dart'; + +/// A rule (also called a "reporting descriptor") defined by a SARIF tool. +@JsonSerializable( + includeIfNull: false, + createFactory: false, + explicitToJson: true, +) +class SarifRule { + SarifRule({ + required this.id, + required this.shortDescription, + this.fullDescription, + this.helpUri, + }); + + /// The rule identifier. + final String id; + + /// A short description of the rule. + final SarifMessage shortDescription; + + /// A full description of the rule. + final SarifMessage? fullDescription; + + /// A URI where help for the rule can be found. + final String? helpUri; + + Map toJson() => _$SarifRuleToJson(this); +} diff --git a/packages/sarif/lib/src/models/sarif_rule.g.dart b/packages/sarif/lib/src/models/sarif_rule.g.dart new file mode 100644 index 0000000..d36631b --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_rule.g.dart @@ -0,0 +1,14 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'sarif_rule.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Map _$SarifRuleToJson(SarifRule instance) => { + 'id': instance.id, + 'shortDescription': instance.shortDescription.toJson(), + 'fullDescription': ?instance.fullDescription?.toJson(), + 'helpUri': ?instance.helpUri, +}; diff --git a/packages/sarif/lib/src/models/sarif_run.dart b/packages/sarif/lib/src/models/sarif_run.dart new file mode 100644 index 0000000..f638efc --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_run.dart @@ -0,0 +1,27 @@ +import 'package:json_annotation/json_annotation.dart'; + +import 'package:sarif/src/models/sarif_result.dart'; +import 'package:sarif/src/models/sarif_tool.dart'; + +part 'sarif_run.g.dart'; + +/// A single run of a tool. +@JsonSerializable( + includeIfNull: false, + createFactory: false, + explicitToJson: true, +) +class SarifRun { + SarifRun({ + required this.tool, + required this.results, + }); + + /// The tool that performed this run. + final SarifTool tool; + + /// The results produced during this run. + final List results; + + Map toJson() => _$SarifRunToJson(this); +} diff --git a/packages/sarif/lib/src/models/sarif_run.g.dart b/packages/sarif/lib/src/models/sarif_run.g.dart new file mode 100644 index 0000000..77dfa9f --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_run.g.dart @@ -0,0 +1,12 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'sarif_run.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Map _$SarifRunToJson(SarifRun instance) => { + 'tool': instance.tool.toJson(), + 'results': instance.results.map((e) => e.toJson()).toList(), +}; diff --git a/packages/sarif/lib/src/models/sarif_tool.dart b/packages/sarif/lib/src/models/sarif_tool.dart new file mode 100644 index 0000000..54828a3 --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_tool.dart @@ -0,0 +1,20 @@ +import 'package:json_annotation/json_annotation.dart'; + +import 'package:sarif/src/models/sarif_driver.dart'; + +part 'sarif_tool.g.dart'; + +/// Information about the tool that produced the SARIF results. +@JsonSerializable( + includeIfNull: false, + createFactory: false, + explicitToJson: true, +) +class SarifTool { + SarifTool({required this.driver}); + + /// The tool driver (component that performed the analysis). + final SarifDriver driver; + + Map toJson() => _$SarifToolToJson(this); +} diff --git a/packages/sarif/lib/src/models/sarif_tool.g.dart b/packages/sarif/lib/src/models/sarif_tool.g.dart new file mode 100644 index 0000000..ea69fa7 --- /dev/null +++ b/packages/sarif/lib/src/models/sarif_tool.g.dart @@ -0,0 +1,11 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'sarif_tool.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Map _$SarifToolToJson(SarifTool instance) => { + 'driver': instance.driver.toJson(), +}; diff --git a/packages/sarif/lib/src/sarif_builder.dart b/packages/sarif/lib/src/sarif_builder.dart new file mode 100644 index 0000000..9695156 --- /dev/null +++ b/packages/sarif/lib/src/sarif_builder.dart @@ -0,0 +1,85 @@ +import 'dart:convert'; + +import 'package:sarif/src/models/models.dart'; + +/// Fluent builder for SARIF documents. +class SarifBuilder { + SarifBuilder({ + required String toolName, + required String toolVersion, + required String toolUri, + }) : _toolName = toolName, + _toolVersion = toolVersion, + _toolUri = toolUri; + + final String _toolName; + final String _toolVersion; + final String _toolUri; + final List _results = []; + final Map _rules = {}; + + /// Add a result to the SARIF document. + void addResult({ + required String ruleId, + required String message, + required SarifLevel level, + required String filePath, + required int line, + required int column, + String? ruleDescription, + String? ruleHelpUri, + }) { + // Auto-register rule if not seen before + _rules.putIfAbsent( + ruleId, + () => SarifRule( + id: ruleId, + shortDescription: SarifMessage( + text: ruleDescription ?? ruleId.replaceAll('_', ' '), + ), + helpUri: ruleHelpUri, + ), + ); + + final result = SarifResult( + ruleId: ruleId, + level: level, + message: SarifMessage(text: message), + locations: [ + SarifLocation( + physicalLocation: SarifPhysicalLocation( + artifactLocation: SarifArtifactLocation(uri: filePath), + region: SarifRegion(startLine: line, startColumn: column), + ), + ), + ], + ); + + _results.add(result); + } + + /// Build the SARIF document. + SarifDocument build() { + return SarifDocument( + runs: [ + SarifRun( + tool: SarifTool( + driver: SarifDriver( + name: _toolName, + version: _toolVersion, + informationUri: _toolUri, + rules: _rules.values.toList(), + ), + ), + results: _results, + ), + ], + ); + } + + /// Build and serialize to JSON string. + String buildJson() { + final doc = build(); + return jsonEncode(doc.toJson()); + } +} diff --git a/packages/sarif/pubspec.yaml b/packages/sarif/pubspec.yaml new file mode 100644 index 0000000..36de5c5 --- /dev/null +++ b/packages/sarif/pubspec.yaml @@ -0,0 +1,16 @@ +name: sarif +description: SARIF 2.1.0 (Static Analysis Results Interchange Format) data structures and builder for Dart. +version: 0.1.0 + +environment: + sdk: ">=3.10.0 <4.0.0" + +resolution: workspace + +dependencies: + json_annotation: ^4.10.0 + +dev_dependencies: + build_runner: ^2.4.0 + json_serializable: ^6.10.0 + test: ^1.25.0 diff --git a/pubspec.yaml b/pubspec.yaml index 3d994d9..4d8ec6b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,13 +10,16 @@ topics: - tools - static-analysis +workspace: + - packages/sarif + environment: sdk: ">=3.10.0 <4.0.0" dependencies: analysis_server_plugin: ^0.3.2 - analyzer: ^8.2.0 - analyzer_plugin: ^0.13.8 + analyzer: ^10.0.2 + analyzer_plugin: ^0.14.2 args: ^2.5.0 checked_yaml: ^2.0.4 cli_completion: ^0.5.1 @@ -24,19 +27,19 @@ dependencies: file: ^7.0.0 file_system: ^2.0.0 glob: ^2.1.2 - json_annotation: ^4.9.0 mason_logger: ^0.3.3 path: ^1.9.0 pub_updater: ^0.5.0 source_span: ^1.10.0 yaml: ^3.1.2 yaml_edit: ^2.2.2 + sarif: + path: packages/sarif dev_dependencies: analyzer_testing: ^0.1.0 build_runner: ^2.10.4 http: ^1.6.0 - json_serializable: ^6.11.2 test: ^1.25.5 test_reflective_loader: ^0.2.0 toml: ^0.17.0 diff --git a/test/src/analyzers/utils/shannon_entropy_test.dart b/test/src/analyzers/utils/shannon_entropy_test.dart index 22b7738..4094141 100644 --- a/test/src/analyzers/utils/shannon_entropy_test.dart +++ b/test/src/analyzers/utils/shannon_entropy_test.dart @@ -1,4 +1,4 @@ -import 'package:dart_shield/src/analyzers/utils/shannon_entropy.dart'; +import 'package:dart_shield/src/utils/shannon_entropy.dart'; import 'package:test/test.dart'; void main() { diff --git a/test/src/reporters/sarif/sarif_builder_test.dart b/test/src/reporters/sarif/sarif_builder_test.dart new file mode 100644 index 0000000..e2b33b9 --- /dev/null +++ b/test/src/reporters/sarif/sarif_builder_test.dart @@ -0,0 +1,336 @@ +import 'dart:convert'; + +import 'package:sarif/sarif.dart'; +import 'package:test/test.dart'; + +void main() { + group('SarifBuilder', () { + test('builds valid SARIF 2.1.0 document', () { + final builder = SarifBuilder( + toolName: 'test_tool', + toolVersion: '1.0.0', + toolUri: 'https://example.com', + ); + + final json = builder.buildJson(); + final sarif = jsonDecode(json) as Map; + + expect(sarif[r'$schema'], contains('sarif')); + expect(sarif['version'], '2.1.0'); + }); + + test('includes tool information', () { + final builder = SarifBuilder( + toolName: 'my_tool', + toolVersion: '2.0.0', + toolUri: 'https://example.com/tool', + ); + + final json = builder.buildJson(); + final sarif = jsonDecode(json) as Map; + final tool = sarif['runs'][0]['tool']['driver'] as Map; + + expect(tool['name'], 'my_tool'); + expect(tool['version'], '2.0.0'); + expect(tool['informationUri'], 'https://example.com/tool'); + }); + + test('adds results with auto-registered rules', () { + final builder = SarifBuilder( + toolName: 'test_tool', + toolVersion: '1.0.0', + toolUri: 'https://example.com', + ); + + builder.addResult( + ruleId: 'test_rule', + message: 'Test message', + level: SarifLevel.error, + filePath: 'lib/test.dart', + line: 10, + column: 5, + ); + + final doc = builder.build(); + final run = doc.runs.first; + expect(run.results, hasLength(1)); + expect(run.tool.driver.rules, hasLength(1)); + expect(run.tool.driver.rules.first.id, 'test_rule'); + }); + + test('deduplicates rules', () { + final builder = SarifBuilder( + toolName: 'test_tool', + toolVersion: '1.0.0', + toolUri: 'https://example.com', + ); + + builder + ..addResult( + ruleId: 'same_rule', + message: 'First', + level: SarifLevel.error, + filePath: 'a.dart', + line: 1, + column: 1, + ) + ..addResult( + ruleId: 'same_rule', + message: 'Second', + level: SarifLevel.error, + filePath: 'b.dart', + line: 2, + column: 1, + ); + + final doc = builder.build(); + final run = doc.runs.first; + expect(run.results, hasLength(2)); + expect(run.tool.driver.rules, hasLength(1)); // Only one rule entry + }); + + test('generates rule description from id if not provided', () { + final builder = SarifBuilder( + toolName: 'test_tool', + toolVersion: '1.0.0', + toolUri: 'https://example.com', + ); + + builder.addResult( + ruleId: 'avoid_hardcoded_secrets', + message: 'Secret found', + level: SarifLevel.error, + filePath: 'lib/api.dart', + line: 1, + column: 1, + ); + + final doc = builder.build(); + final run = doc.runs.first; + expect( + run.tool.driver.rules.first.shortDescription.text, + 'avoid hardcoded secrets', + ); + }); + + test('uses custom rule description when provided', () { + final builder = SarifBuilder( + toolName: 'test_tool', + toolVersion: '1.0.0', + toolUri: 'https://example.com', + ); + + builder.addResult( + ruleId: 'test_rule', + message: 'Test message', + level: SarifLevel.warning, + filePath: 'lib/test.dart', + line: 1, + column: 1, + ruleDescription: 'Custom description', + ruleHelpUri: 'https://docs.example.com/rules/test', + ); + + final doc = builder.build(); + final run = doc.runs.first; + final rule = run.tool.driver.rules.first; + expect(rule.shortDescription.text, 'Custom description'); + expect(rule.helpUri, 'https://docs.example.com/rules/test'); + }); + + test('buildJson produces valid JSON with runs array', () { + final builder = SarifBuilder( + toolName: 'test_tool', + toolVersion: '1.0.0', + toolUri: 'https://example.com', + ); + + builder.addResult( + ruleId: 'rule1', + message: 'Message 1', + level: SarifLevel.error, + filePath: 'a.dart', + line: 5, + column: 10, + ); + + final json = builder.buildJson(); + final sarif = jsonDecode(json) as Map; + + expect(sarif['runs'], isA()); + expect((sarif['runs'] as List), hasLength(1)); + + final run = sarif['runs'][0] as Map; + expect(run['tool'], isA()); + expect(run['results'], isA()); + }); + + test('empty builder produces valid SARIF with no results', () { + final builder = SarifBuilder( + toolName: 'test_tool', + toolVersion: '1.0.0', + toolUri: 'https://example.com', + ); + + final doc = builder.build(); + final run = doc.runs.first; + expect(run.results, isEmpty); + expect(run.tool.driver.rules, isEmpty); + + final json = builder.buildJson(); + final sarif = jsonDecode(json) as Map; + expect(sarif['runs'][0]['results'], isEmpty); + }); + }); + + group('SarifDocument', () { + test('toJson includes schema and version', () { + final doc = SarifDocument( + runs: [ + SarifRun( + tool: SarifTool( + driver: SarifDriver( + name: 'test', + version: '1.0.0', + informationUri: 'https://example.com', + ), + ), + results: [], + ), + ], + ); + + final json = doc.toJson(); + expect(json[r'$schema'], contains('sarif')); + expect(json['version'], '2.1.0'); + }); + }); + + group('SarifResult', () { + test('toJson includes all required fields', () { + final result = SarifResult( + ruleId: 'test_rule', + level: SarifLevel.error, + message: SarifMessage(text: 'Test message'), + locations: [ + SarifLocation( + physicalLocation: SarifPhysicalLocation( + artifactLocation: SarifArtifactLocation(uri: 'lib/test.dart'), + region: SarifRegion(startLine: 10, startColumn: 5), + ), + ), + ], + ); + + final json = result.toJson(); + expect(json['ruleId'], 'test_rule'); + expect(json['level'], 'error'); + final message = json['message'] as Map; + expect(message['text'], 'Test message'); + expect(json['locations'], isA()); + }); + }); + + group('SarifLocation', () { + test('toJson includes physical location', () { + final location = SarifLocation( + physicalLocation: SarifPhysicalLocation( + artifactLocation: SarifArtifactLocation(uri: 'lib/src/api.dart'), + region: SarifRegion(startLine: 42, startColumn: 10), + ), + ); + + final json = location.toJson(); + final physical = json['physicalLocation'] as Map; + final artifactLocation = + physical['artifactLocation'] as Map; + final region = physical['region'] as Map; + expect(artifactLocation['uri'], 'lib/src/api.dart'); + expect(region['startLine'], 42); + expect(region['startColumn'], 10); + }); + + test('toJson includes end line/column when provided', () { + final location = SarifLocation( + physicalLocation: SarifPhysicalLocation( + artifactLocation: SarifArtifactLocation(uri: 'lib/test.dart'), + region: SarifRegion( + startLine: 10, + startColumn: 5, + endLine: 10, + endColumn: 20, + ), + ), + ); + + final json = location.toJson(); + final physical = json['physicalLocation'] as Map; + final region = physical['region'] as Map; + expect(region['endLine'], 10); + expect(region['endColumn'], 20); + }); + + test('toJson omits end line/column when not provided', () { + final location = SarifLocation( + physicalLocation: SarifPhysicalLocation( + artifactLocation: SarifArtifactLocation(uri: 'lib/test.dart'), + region: SarifRegion(startLine: 10, startColumn: 5), + ), + ); + + final json = location.toJson(); + final physical = json['physicalLocation'] as Map; + final region = physical['region'] as Map; + expect(region.containsKey('endLine'), isFalse); + expect(region.containsKey('endColumn'), isFalse); + }); + }); + + group('SarifLevel', () { + test('enum values match SARIF specification', () { + expect(SarifLevel.error.name, 'error'); + expect(SarifLevel.warning.name, 'warning'); + expect(SarifLevel.note.name, 'note'); + expect(SarifLevel.none.name, 'none'); + }); + }); + + group('SarifRule', () { + test('toJson includes id and shortDescription', () { + final rule = SarifRule( + id: 'test_rule', + shortDescription: SarifMessage(text: 'Test description'), + ); + + final json = rule.toJson(); + expect(json['id'], 'test_rule'); + final shortDesc = json['shortDescription'] as Map; + expect(shortDesc['text'], 'Test description'); + }); + + test('toJson includes optional fields when provided', () { + final rule = SarifRule( + id: 'test_rule', + shortDescription: SarifMessage(text: 'Short'), + fullDescription: SarifMessage(text: 'Full description of the rule'), + helpUri: 'https://docs.example.com/rules/test', + ); + + final json = rule.toJson(); + final fullDesc = json['fullDescription'] as Map; + expect(fullDesc['text'], 'Full description of the rule'); + expect(json['helpUri'], 'https://docs.example.com/rules/test'); + }); + + test('toJson omits optional fields when not provided', () { + final rule = SarifRule( + id: 'test_rule', + shortDescription: SarifMessage(text: 'Short'), + ); + + final json = rule.toJson(); + expect(json.containsKey('fullDescription'), isFalse); + expect(json.containsKey('helpUri'), isFalse); + }); + }); +} diff --git a/test/src/reporters/sarif/sarif_reporter_test.dart b/test/src/reporters/sarif/sarif_reporter_test.dart new file mode 100644 index 0000000..7e622cf --- /dev/null +++ b/test/src/reporters/sarif/sarif_reporter_test.dart @@ -0,0 +1,305 @@ +import 'dart:convert'; + +import 'package:dart_shield/src/domain/analysis_issue.dart'; +import 'package:dart_shield/src/domain/analyzer_result.dart'; +import 'package:dart_shield/src/domain/issue_context.dart'; +import 'package:dart_shield/src/reporters/sarif_reporter.dart'; +import 'package:test/test.dart'; + +void main() { + group('SarifReporter', () { + late SarifReporter reporter; + + setUp(() { + reporter = SarifReporter(); + }); + + test('has correct id', () { + expect(reporter.id, 'sarif'); + }); + + test('generates valid SARIF 2.1.0 schema', () { + final results = [ + AnalysisSuccess( + analyzerId: 'code', + duration: Duration(milliseconds: 100), + issues: [], + ), + ]; + + final output = reporter.generateSarif(results); + final sarif = jsonDecode(output) as Map; + + expect(sarif[r'$schema'], contains('sarif')); + expect(sarif['version'], '2.1.0'); + expect(sarif['runs'], isA()); + }); + + test('includes tool information', () { + final results = [ + AnalysisSuccess( + analyzerId: 'code', + duration: Duration(milliseconds: 100), + issues: [], + ), + ]; + + final output = reporter.generateSarif(results); + final sarif = jsonDecode(output) as Map; + final tool = sarif['runs'][0]['tool']['driver'] as Map; + + expect(tool['name'], 'dart_shield'); + expect(tool['informationUri'], contains('github.com')); + expect(tool['rules'], isA()); + }); + + test('maps issues to SARIF results', () { + final results = [ + AnalysisSuccess( + analyzerId: 'code', + duration: Duration(milliseconds: 100), + issues: [ + AnalysisIssue( + ruleId: 'avoid_hardcoded_secrets', + severity: Severity.high, + message: 'Hardcoded secret detected: AWS credentials', + context: FileContext( + filePath: 'lib/src/api.dart', + line: 10, + column: 5, + ), + ), + ], + ), + ]; + + final output = reporter.generateSarif(results); + final sarif = jsonDecode(output) as Map; + final sarifResults = sarif['runs'][0]['results'] as List; + + expect(sarifResults, hasLength(1)); + expect(sarifResults[0]['ruleId'], 'avoid_hardcoded_secrets'); + expect(sarifResults[0]['level'], 'error'); // high -> error + expect(sarifResults[0]['message']['text'], contains('AWS')); + }); + + test('maps severity correctly', () { + // high -> error + // medium -> warning + // low -> note + // info -> note + final results = [ + AnalysisSuccess( + analyzerId: 'code', + duration: Duration(milliseconds: 100), + issues: [ + AnalysisIssue( + ruleId: 'rule1', + severity: Severity.high, + message: 'High severity', + context: FileContext(filePath: 'a.dart', line: 1, column: 1), + ), + AnalysisIssue( + ruleId: 'rule2', + severity: Severity.medium, + message: 'Medium severity', + context: FileContext(filePath: 'a.dart', line: 2, column: 1), + ), + AnalysisIssue( + ruleId: 'rule3', + severity: Severity.low, + message: 'Low severity', + context: FileContext(filePath: 'a.dart', line: 3, column: 1), + ), + AnalysisIssue( + ruleId: 'rule4', + severity: Severity.info, + message: 'Info severity', + context: FileContext(filePath: 'a.dart', line: 4, column: 1), + ), + ], + ), + ]; + + final output = reporter.generateSarif(results); + final sarif = jsonDecode(output) as Map; + final sarifResults = sarif['runs'][0]['results'] as List; + + expect(sarifResults[0]['level'], 'error'); + expect(sarifResults[1]['level'], 'warning'); + expect(sarifResults[2]['level'], 'note'); + expect(sarifResults[3]['level'], 'note'); + }); + + test('includes physical location with URI', () { + final results = [ + AnalysisSuccess( + analyzerId: 'code', + duration: Duration(milliseconds: 100), + issues: [ + AnalysisIssue( + ruleId: 'test_rule', + severity: Severity.medium, + message: 'Test message', + context: FileContext( + filePath: 'lib/src/service.dart', + line: 42, + column: 10, + ), + ), + ], + ), + ]; + + final output = reporter.generateSarif(results); + final sarif = jsonDecode(output) as Map; + final location = sarif['runs'][0]['results'][0]['locations'][0] + as Map; + final physicalLocation = + location['physicalLocation'] as Map; + + expect( + physicalLocation['artifactLocation']['uri'], + 'lib/src/service.dart', + ); + expect(physicalLocation['region']['startLine'], 42); + expect(physicalLocation['region']['startColumn'], 10); + }); + + test('handles empty results', () { + final results = []; + + final output = reporter.generateSarif(results); + final sarif = jsonDecode(output) as Map; + + expect(sarif['runs'], hasLength(1)); + expect(sarif['runs'][0]['results'], isEmpty); + }); + + test('handles multiple analysis successes', () { + final results = [ + AnalysisSuccess( + analyzerId: 'analyzer1', + duration: Duration(milliseconds: 50), + issues: [ + AnalysisIssue( + ruleId: 'rule1', + severity: Severity.high, + message: 'Issue from analyzer 1', + context: FileContext(filePath: 'a.dart', line: 1, column: 1), + ), + ], + ), + AnalysisSuccess( + analyzerId: 'analyzer2', + duration: Duration(milliseconds: 75), + issues: [ + AnalysisIssue( + ruleId: 'rule2', + severity: Severity.medium, + message: 'Issue from analyzer 2', + context: FileContext(filePath: 'b.dart', line: 2, column: 2), + ), + ], + ), + ]; + + final output = reporter.generateSarif(results); + final sarif = jsonDecode(output) as Map; + final sarifResults = sarif['runs'][0]['results'] as List; + + expect(sarifResults, hasLength(2)); + expect(sarifResults[0]['ruleId'], 'rule1'); + expect(sarifResults[1]['ruleId'], 'rule2'); + }); + + test('handles analysis failures gracefully', () { + final results = [ + AnalysisFailure( + analyzerId: 'code', + duration: Duration(milliseconds: 100), + errorMessage: 'Failed to analyze', + stackTrace: StackTrace.current, + ), + ]; + + final output = reporter.generateSarif(results); + final sarif = jsonDecode(output) as Map; + + // Should still produce valid SARIF with empty results + expect(sarif['version'], '2.1.0'); + expect(sarif['runs'][0]['results'], isEmpty); + }); + + test('handles mixed success and failure results', () { + final results = [ + AnalysisSuccess( + analyzerId: 'code', + duration: Duration(milliseconds: 100), + issues: [ + AnalysisIssue( + ruleId: 'test_rule', + severity: Severity.medium, + message: 'Test issue', + context: FileContext(filePath: 'a.dart', line: 1, column: 1), + ), + ], + ), + AnalysisFailure( + analyzerId: 'broken', + duration: Duration(milliseconds: 50), + errorMessage: 'Something went wrong', + ), + ]; + + final output = reporter.generateSarif(results); + final sarif = jsonDecode(output) as Map; + final sarifResults = sarif['runs'][0]['results'] as List; + + // Only the successful analysis issue should appear + expect(sarifResults, hasLength(1)); + expect(sarifResults[0]['ruleId'], 'test_rule'); + }); + + test('registers unique rules in tool driver', () { + final results = [ + AnalysisSuccess( + analyzerId: 'code', + duration: Duration(milliseconds: 100), + issues: [ + AnalysisIssue( + ruleId: 'avoid_hardcoded_secrets', + severity: Severity.high, + message: 'Secret 1', + context: FileContext(filePath: 'a.dart', line: 1, column: 1), + ), + AnalysisIssue( + ruleId: 'avoid_hardcoded_secrets', + severity: Severity.high, + message: 'Secret 2', + context: FileContext(filePath: 'b.dart', line: 2, column: 2), + ), + AnalysisIssue( + ruleId: 'prefer_https_over_http', + severity: Severity.medium, + message: 'HTTP used', + context: FileContext(filePath: 'c.dart', line: 3, column: 3), + ), + ], + ), + ]; + + final output = reporter.generateSarif(results); + final sarif = jsonDecode(output) as Map; + final rules = + sarif['runs'][0]['tool']['driver']['rules'] as List; + + // Should have 2 unique rules + expect(rules, hasLength(2)); + + final ruleIds = rules.map((r) => r['id'] as String).toSet(); + expect(ruleIds, contains('avoid_hardcoded_secrets')); + expect(ruleIds, contains('prefer_https_over_http')); + }); + }); +} From bf826395906f27f77d068315c14bf34975f44844 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20Novotn=C3=BD?= <62177414+yardexx@users.noreply.github.com> Date: Sun, 1 Feb 2026 23:37:34 +0100 Subject: [PATCH 3/9] feat: baseline support (#24) * feat: add SARIF output reporter for GitHub Security integration - Add modular SARIF module (sarif_document, sarif_builder, sarif_reporter) - Map dart_shield severity levels to SARIF levels (high->error, medium->warning, low/info->note) - Support --reporter=sarif CLI option - Add comprehensive tests (29 tests for SARIF module) - Add GitHub Actions integration documentation This enables: - GitHub Security tab integration - PR annotations showing security issues inline - Tracking security issues over time * feat: add baseline file support for gradual adoption - Add BaselineManager for creating and loading baseline files - Add `dart_shield baseline` command to create baseline from current issues - Add `--baseline` option to analyze command to filter baselined issues - Fingerprints are MD5 hashes of (ruleId:filePath:line) - Baseline files are human-readable YAML format - Add comprehensive tests (12 tests for baseline manager) This enables teams to adopt dart_shield in existing projects without being overwhelmed by legacy issues. * refactor: change default baseline path to .dart_tool/ - Default baseline now writes to .dart_tool/dart_shield_baseline.yaml - Follows Dart conventions for tool-generated files - --output/-o option still allows custom paths - Ensures parent directory is created if it doesn't exist * refactor: use dart_shield subdirectory for baseline Default path is now .dart_tool/dart_shield/baseline.yaml * refactor: extract BaselineEntry to separate file Split baseline_manager.dart to follow one-class-per-file convention. Sealed classes and their implementations remain grouped by design. * chore: remove plan files from tracking --- lib/src/baseline/baseline_entry.dart | 21 ++ lib/src/baseline/baseline_manager.dart | 116 ++++++++ lib/src/cli/command_runner.dart | 2 + lib/src/cli/commands/analyze_command.dart | 8 + lib/src/cli/commands/baseline_command.dart | 112 ++++++++ lib/src/core/shield_run_config.dart | 5 + lib/src/core/shield_runner.dart | 6 + lib/src/reporters/sarif/sarif_builder.dart | 80 ++++++ lib/src/reporters/sarif/sarif_document.dart | 185 +++++++++++++ lib/src/reporters/sarif/sarif_reporter.dart | 79 ++++++ pubspec.yaml | 1 + test/src/baseline/baseline_manager_test.dart | 267 +++++++++++++++++++ 12 files changed, 882 insertions(+) create mode 100644 lib/src/baseline/baseline_entry.dart create mode 100644 lib/src/baseline/baseline_manager.dart create mode 100644 lib/src/cli/commands/baseline_command.dart create mode 100644 lib/src/reporters/sarif/sarif_builder.dart create mode 100644 lib/src/reporters/sarif/sarif_document.dart create mode 100644 lib/src/reporters/sarif/sarif_reporter.dart create mode 100644 test/src/baseline/baseline_manager_test.dart diff --git a/lib/src/baseline/baseline_entry.dart b/lib/src/baseline/baseline_entry.dart new file mode 100644 index 0000000..3226131 --- /dev/null +++ b/lib/src/baseline/baseline_entry.dart @@ -0,0 +1,21 @@ +/// An entry in the baseline file. +class BaselineEntry { + BaselineEntry({ + required this.ruleId, + required this.file, + required this.line, + required this.fingerprint, + }); + + /// The rule ID. + final String ruleId; + + /// The file path. + final String file; + + /// The line number. + final int line; + + /// The fingerprint (hash of rule, file, line). + final String fingerprint; +} diff --git a/lib/src/baseline/baseline_manager.dart b/lib/src/baseline/baseline_manager.dart new file mode 100644 index 0000000..59e232b --- /dev/null +++ b/lib/src/baseline/baseline_manager.dart @@ -0,0 +1,116 @@ +import 'dart:convert'; +import 'dart:io'; + +import 'package:crypto/crypto.dart'; +import 'package:dart_shield/src/baseline/baseline_entry.dart'; +import 'package:dart_shield/src/domain/analysis_issue.dart'; +import 'package:dart_shield/src/domain/issue_context.dart'; +import 'package:yaml/yaml.dart'; + +/// Manages baseline files for tracking known issues. +/// +/// Baseline files allow teams to adopt dart_shield in existing projects +/// without being overwhelmed by legacy issues. The tool records all current +/// issues, then only reports new violations. +class BaselineManager { + BaselineManager(this.baselinePath); + + /// Path to the baseline file. + final String baselinePath; + + /// Create a baseline file from the given issues. + Future createBaseline(List issues) async { + final entries = issues.map((issue) { + final context = issue.context; + final filePath = switch (context) { + FileContext(:final filePath) => filePath, + }; + final line = switch (context) { + FileContext(:final line) => line, + }; + + return { + 'rule_id': issue.ruleId, + 'file': filePath, + 'line': line, + 'fingerprint': generateFingerprint(issue), + }; + }).toList(); + + final yamlContent = _generateYaml(entries); + + final file = File(baselinePath); + await file.writeAsString(yamlContent); + } + + /// Load the baseline entries from the file. + Future> loadBaseline() async { + final file = File(baselinePath); + if (!file.existsSync()) return []; + + final content = await file.readAsString(); + if (content.trim().isEmpty) return []; + + final yaml = loadYaml(content); + if (yaml == null) return []; + + final yamlMap = yaml as YamlMap; + final baseline = yamlMap['baseline']; + if (baseline == null) return []; + + final baselineList = baseline as YamlList; + return baselineList.map((entry) { + final entryMap = entry as YamlMap; + return BaselineEntry( + ruleId: entryMap['rule_id'] as String, + file: entryMap['file'] as String, + line: entryMap['line'] as int, + fingerprint: entryMap['fingerprint'] as String, + ); + }).toList(); + } + + /// Filter out issues that are already in the baseline. + Future> filterBaselined(List issues) async { + final baseline = await loadBaseline(); + final baselineFingerprints = baseline.map((e) => e.fingerprint).toSet(); + + return issues.where((issue) { + final fp = generateFingerprint(issue); + return !baselineFingerprints.contains(fp); + }).toList(); + } + + /// Generate a stable fingerprint for an issue. + /// + /// The fingerprint is based on the rule ID, file path, and line number. + /// This allows the baseline to track issues even if the message changes. + String generateFingerprint(AnalysisIssue issue) { + final context = issue.context; + final filePath = switch (context) { + FileContext(:final filePath) => filePath, + }; + final line = switch (context) { + FileContext(:final line) => line, + }; + + final data = '${issue.ruleId}:$filePath:$line'; + return md5.convert(utf8.encode(data)).toString().substring(0, 12); + } + + /// Generate YAML content from baseline entries. + String _generateYaml(List> entries) { + if (entries.isEmpty) { + return 'baseline: []\n'; + } + + final buffer = StringBuffer('baseline:\n'); + for (final entry in entries) { + buffer.writeln(' - rule_id: ${entry['rule_id']}'); + buffer.writeln(' file: ${entry['file']}'); + buffer.writeln(' line: ${entry['line']}'); + buffer.writeln(' fingerprint: ${entry['fingerprint']}'); + } + return buffer.toString(); + } +} diff --git a/lib/src/cli/command_runner.dart b/lib/src/cli/command_runner.dart index f0bf2c6..afc8af2 100644 --- a/lib/src/cli/command_runner.dart +++ b/lib/src/cli/command_runner.dart @@ -2,6 +2,7 @@ import 'package:args/args.dart'; import 'package:args/command_runner.dart'; import 'package:cli_completion/cli_completion.dart'; import 'package:dart_shield/src/cli/commands/analyze_command.dart'; +import 'package:dart_shield/src/cli/commands/baseline_command.dart'; import 'package:dart_shield/src/cli/commands/init_command.dart'; import 'package:mason_logger/mason_logger.dart'; @@ -15,6 +16,7 @@ class ShieldCommandRunner extends CompletionCommandRunner { super(executableName, description) { // Add sub commands addCommand(AnalyzeCommand(logger: _logger)); + addCommand(BaselineCommand(logger: _logger)); addCommand(InitCommand(logger: _logger)); } diff --git a/lib/src/cli/commands/analyze_command.dart b/lib/src/cli/commands/analyze_command.dart index 3a428e6..4b48734 100644 --- a/lib/src/cli/commands/analyze_command.dart +++ b/lib/src/cli/commands/analyze_command.dart @@ -1,3 +1,4 @@ +import 'package:dart_shield/src/cli/commands/baseline_command.dart'; import 'package:dart_shield/src/cli/commands/shield_command.dart'; import 'package:dart_shield/src/core/analyzer_factory.dart'; import 'package:dart_shield/src/core/shield_run_config.dart'; @@ -29,6 +30,12 @@ class AnalyzeCommand extends ShieldCommand { 'exclude', allowed: AnalyzerFactory.availableIds, help: 'Exclude specific analyzers.', + ) + ..addOption( + 'baseline', + abbr: 'b', + help: 'Path to baseline file. Issues in baseline are not reported. ' + 'Default location is $defaultBaselinePath', ); } @@ -48,6 +55,7 @@ class AnalyzeCommand extends ShieldCommand { exclude: argResults['exclude'] as List? ?? [], reporterMode: argResults['reporter'] as String? ?? 'console', minSeverity: ShieldRunConfig.parseSeverity(severityStr), + baselinePath: argResults['baseline'] as String?, ); final runner = ShieldRunner(logger: logger); diff --git a/lib/src/cli/commands/baseline_command.dart b/lib/src/cli/commands/baseline_command.dart new file mode 100644 index 0000000..1b4eff0 --- /dev/null +++ b/lib/src/cli/commands/baseline_command.dart @@ -0,0 +1,112 @@ +import 'dart:io'; + +import 'package:dart_shield/src/baseline/baseline_manager.dart'; +import 'package:dart_shield/src/cli/commands/shield_command.dart'; +import 'package:dart_shield/src/configuration/shield_config.dart'; +import 'package:dart_shield/src/core/analyzer_engine.dart'; +import 'package:dart_shield/src/core/analyzer_factory.dart'; +import 'package:dart_shield/src/domain/analyzer_result.dart'; +import 'package:mason_logger/mason_logger.dart'; + +/// Default baseline file path following Dart conventions. +const defaultBaselinePath = '.dart_tool/dart_shield/baseline.yaml'; + +/// Command to create or update a baseline file for existing issues. +/// +/// This allows teams to adopt dart_shield in existing projects without +/// being overwhelmed by legacy issues. +class BaselineCommand extends ShieldCommand { + BaselineCommand({super.logger}) { + argParser + ..addOption( + 'output', + abbr: 'o', + defaultsTo: defaultBaselinePath, + help: 'Output path for the baseline file. ' + 'Defaults to $defaultBaselinePath', + ) + ..addFlag( + 'update', + abbr: 'u', + help: 'Update existing baseline with current issues.', + ); + } + + @override + String get name => 'baseline'; + + @override + String get description => + 'Create or update a baseline file for existing issues.'; + + @override + Future run() async { + final outputPath = argResults['output'] as String; + final update = argResults['update'] as bool; + final paths = argResults.rest.isEmpty ? ['.'] : argResults.rest; + + try { + // Check if baseline exists when not updating + final checkFile = File(outputPath); + if (checkFile.existsSync() && !update) { + logger.err( + 'Baseline file already exists: $outputPath\n' + 'Use --update to merge with existing baseline.', + ); + return ExitCode.usage.code; + } + + // Load configuration + final config = await ShieldConfig.load(); + + // Resolve analyzers + final analyzers = AnalyzerFactory.resolve( + paths: paths, + config: config, + only: [], + exclude: [], + ); + + if (analyzers.isEmpty) { + logger.warn('No analyzers selected.'); + return ExitCode.config.code; + } + + // Run analysis + logger + ..info('๐Ÿ›ก๏ธ Running analysis to create baseline...') + ..info(' Analyzing ${paths.join(', ')}'); + + final engine = AnalyzerEngine(analyzers); + final results = await engine.runAll(); + + // Extract all issues + final issues = results + .whereType() + .expand((r) => r.issues) + .toList(); + + // Ensure parent directory exists + final baselineFile = File(outputPath); + final parentDir = baselineFile.parent; + if (!parentDir.existsSync()) { + parentDir.createSync(recursive: true); + } + + // Create baseline + final manager = BaselineManager(outputPath); + await manager.createBaseline(issues); + + logger + ..success('โœ… Baseline created: $outputPath') + ..info(' ${issues.length} issues recorded'); + + return ExitCode.success.code; + } on Object catch (e, stack) { + logger + ..err('Failed to create baseline: $e') + ..detail('$stack'); + return ExitCode.software.code; + } + } +} diff --git a/lib/src/core/shield_run_config.dart b/lib/src/core/shield_run_config.dart index 7fb6ccc..ad8c375 100644 --- a/lib/src/core/shield_run_config.dart +++ b/lib/src/core/shield_run_config.dart @@ -7,6 +7,7 @@ class ShieldRunConfig { this.exclude = const [], this.reporterMode = 'console', this.minSeverity = Severity.info, + this.baselinePath, }); final List paths; @@ -18,6 +19,10 @@ class ShieldRunConfig { /// Issues below this severity level will be filtered out. final Severity minSeverity; + /// Path to the baseline file. + /// Issues in the baseline will be filtered out. + final String? baselinePath; + /// Parses a severity string to the corresponding [Severity] enum. /// Returns [Severity.info] if the string is not recognized. static Severity parseSeverity(String value) { diff --git a/lib/src/core/shield_runner.dart b/lib/src/core/shield_runner.dart index 8e1ad2e..c27f14b 100644 --- a/lib/src/core/shield_runner.dart +++ b/lib/src/core/shield_runner.dart @@ -1,3 +1,4 @@ +import 'package:dart_shield/src/baseline/baseline_manager.dart'; import 'package:dart_shield/src/configuration/shield_config.dart'; import 'package:dart_shield/src/core/analyzer_engine.dart'; import 'package:dart_shield/src/core/analyzer_factory.dart'; @@ -91,6 +92,11 @@ class ShieldRunner { // 5. Filter by minimum severity results = _filterBySeverity(results, runConfig.minSeverity); + // 5.5. Filter baselined issues + if (runConfig.baselinePath != null) { + results = await _filterBaselined(results, runConfig.baselinePath!); + } + // 6. Reporting final reporters = _getReporters(runConfig.reporterMode); await Future.wait(reporters.map((r) => r.report(results))); diff --git a/lib/src/reporters/sarif/sarif_builder.dart b/lib/src/reporters/sarif/sarif_builder.dart new file mode 100644 index 0000000..ddadb55 --- /dev/null +++ b/lib/src/reporters/sarif/sarif_builder.dart @@ -0,0 +1,80 @@ +import 'dart:convert'; + +import 'package:dart_shield/src/reporters/sarif/sarif_document.dart'; + +/// Fluent builder for SARIF documents. +/// +/// This class has NO dependencies on dart_shield domain models. +/// It can be extracted to a standalone package. +class SarifBuilder { + SarifBuilder({ + required String toolName, + required String toolVersion, + required String toolUri, + }) : _tool = SarifTool( + name: toolName, + version: toolVersion, + informationUri: toolUri, + ); + + final SarifTool _tool; + final List _results = []; + final Map _rules = {}; + + /// Add a result to the SARIF document. + void addResult({ + required String ruleId, + required String message, + required SarifLevel level, + required String filePath, + required int line, + required int column, + String? ruleDescription, + String? ruleHelpUri, + }) { + // Auto-register rule if not seen before + _rules.putIfAbsent( + ruleId, + () => SarifRule( + id: ruleId, + shortDescription: ruleDescription ?? ruleId.replaceAll('_', ' '), + helpUri: ruleHelpUri, + ), + ); + + _results.add( + SarifResult( + ruleId: ruleId, + level: level, + message: message, + location: SarifLocation( + filePath: filePath, + startLine: line, + startColumn: column, + ), + ), + ); + } + + /// Build the SARIF document. + SarifDocument build() { + return SarifDocument( + tool: SarifTool( + name: _tool.name, + version: _tool.version, + informationUri: _tool.informationUri, + rules: _rules.values.toList(), + ), + results: _results, + ); + } + + /// Build and serialize to JSON string. + String buildJson({bool pretty = true}) { + final doc = build(); + if (pretty) { + return const JsonEncoder.withIndent(' ').convert(doc.toJson()); + } + return jsonEncode(doc.toJson()); + } +} diff --git a/lib/src/reporters/sarif/sarif_document.dart b/lib/src/reporters/sarif/sarif_document.dart new file mode 100644 index 0000000..d6b049b --- /dev/null +++ b/lib/src/reporters/sarif/sarif_document.dart @@ -0,0 +1,185 @@ +/// Pure SARIF 2.1.0 data structures. +/// +/// This file has NO dependencies on dart_shield domain models. +/// It can be extracted to a standalone package. +library; + +/// A SARIF 2.1.0 document. +class SarifDocument { + SarifDocument({ + required this.tool, + required this.results, + }); + + /// SARIF schema URL. + static const String schema = + 'https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json'; + + /// SARIF version. + static const String version = '2.1.0'; + + /// The tool that produced the results. + final SarifTool tool; + + /// The results produced by the tool. + final List results; + + /// Convert to JSON-serializable map. + Map toJson() => { + r'$schema': schema, + 'version': version, + 'runs': [ + { + 'tool': tool.toJson(), + 'results': results.map((r) => r.toJson()).toList(), + }, + ], + }; +} + +/// Information about the tool that produced the SARIF results. +class SarifTool { + SarifTool({ + required this.name, + required this.version, + required this.informationUri, + this.rules = const [], + }); + + /// The name of the tool. + final String name; + + /// The version of the tool. + final String version; + + /// A URI where the tool can be found. + final String informationUri; + + /// The rules defined by the tool. + final List rules; + + /// Convert to JSON-serializable map. + Map toJson() => { + 'driver': { + 'name': name, + 'version': version, + 'informationUri': informationUri, + 'rules': rules.map((r) => r.toJson()).toList(), + }, + }; +} + +/// A rule defined by a SARIF tool. +class SarifRule { + SarifRule({ + required this.id, + required this.shortDescription, + this.fullDescription, + this.helpUri, + }); + + /// The rule identifier. + final String id; + + /// A short description of the rule. + final String shortDescription; + + /// A full description of the rule. + final String? fullDescription; + + /// A URI where help for the rule can be found. + final String? helpUri; + + /// Convert to JSON-serializable map. + Map toJson() => { + 'id': id, + 'shortDescription': {'text': shortDescription}, + if (fullDescription != null) + 'fullDescription': {'text': fullDescription}, + if (helpUri != null) 'helpUri': helpUri, + }; +} + +/// A single result (finding) in a SARIF document. +class SarifResult { + SarifResult({ + required this.ruleId, + required this.level, + required this.message, + required this.location, + }); + + /// The rule that produced this result. + final String ruleId; + + /// The severity level. + final SarifLevel level; + + /// The message describing the result. + final String message; + + /// The location where the result was found. + final SarifLocation location; + + /// Convert to JSON-serializable map. + Map toJson() => { + 'ruleId': ruleId, + 'level': level.name, + 'message': {'text': message}, + 'locations': [location.toJson()], + }; +} + +/// SARIF severity levels. +enum SarifLevel { + /// An error. + error, + + /// A warning. + warning, + + /// A note (informational). + note, + + /// No level assigned. + none, +} + +/// A location in a SARIF result. +class SarifLocation { + SarifLocation({ + required this.filePath, + required this.startLine, + required this.startColumn, + this.endLine, + this.endColumn, + }); + + /// The file path. + final String filePath; + + /// The starting line number (1-based). + final int startLine; + + /// The starting column number (1-based). + final int startColumn; + + /// The ending line number (1-based). + final int? endLine; + + /// The ending column number (1-based). + final int? endColumn; + + /// Convert to JSON-serializable map. + Map toJson() => { + 'physicalLocation': { + 'artifactLocation': {'uri': filePath}, + 'region': { + 'startLine': startLine, + 'startColumn': startColumn, + if (endLine != null) 'endLine': endLine, + if (endColumn != null) 'endColumn': endColumn, + }, + }, + }; +} diff --git a/lib/src/reporters/sarif/sarif_reporter.dart b/lib/src/reporters/sarif/sarif_reporter.dart new file mode 100644 index 0000000..cc7d6ac --- /dev/null +++ b/lib/src/reporters/sarif/sarif_reporter.dart @@ -0,0 +1,79 @@ +import 'dart:io'; + +import 'package:dart_shield/src/domain/analysis_issue.dart'; +import 'package:dart_shield/src/domain/analyzer_result.dart'; +import 'package:dart_shield/src/domain/issue_context.dart'; +import 'package:dart_shield/src/reporters/reporter.dart'; +import 'package:dart_shield/src/reporters/sarif/sarif_builder.dart'; +import 'package:dart_shield/src/reporters/sarif/sarif_document.dart'; + +/// SARIF reporter that adapts dart_shield results to SARIF format. +/// +/// This is a thin adapter - all SARIF logic lives in [SarifBuilder]. +class SarifReporter implements Reporter { + @override + String get id => 'sarif'; + + @override + Future report(List results) async { + final sarif = generateSarif(results); + stdout.writeln(sarif); + } + + /// Generate SARIF JSON from analysis results. + /// + /// Exposed for testing. + String generateSarif(List results) { + final builder = SarifBuilder( + toolName: 'dart_shield', + toolVersion: '0.1.0', // TODO: Read from pubspec + toolUri: 'https://github.com/yardexx/dart_shield', + ); + + // Extract all issues from successful analyses + final issues = + results.whereType().expand((r) => r.issues); + + for (final issue in issues) { + builder.addResult( + ruleId: issue.ruleId, + message: issue.message, + level: _mapSeverity(issue.severity), + filePath: _getFilePath(issue.context), + line: _getLine(issue.context), + column: _getColumn(issue.context), + // TODO: Add rule descriptions from metadata + ); + } + + return builder.buildJson(); + } + + /// Map dart_shield Severity to SARIF Level. + SarifLevel _mapSeverity(Severity severity) { + return switch (severity) { + Severity.high => SarifLevel.error, + Severity.medium => SarifLevel.warning, + Severity.low => SarifLevel.note, + Severity.info => SarifLevel.note, + }; + } + + String _getFilePath(IssueContext context) { + return switch (context) { + FileContext(:final filePath) => filePath, + }; + } + + int _getLine(IssueContext context) { + return switch (context) { + FileContext(:final line) => line, + }; + } + + int _getColumn(IssueContext context) { + return switch (context) { + FileContext(:final column) => column, + }; + } +} diff --git a/pubspec.yaml b/pubspec.yaml index 4d8ec6b..4c8bffc 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -24,6 +24,7 @@ dependencies: checked_yaml: ^2.0.4 cli_completion: ^0.5.1 collection: ^1.18.0 + crypto: ^3.0.7 file: ^7.0.0 file_system: ^2.0.0 glob: ^2.1.2 diff --git a/test/src/baseline/baseline_manager_test.dart b/test/src/baseline/baseline_manager_test.dart new file mode 100644 index 0000000..a7ff3e3 --- /dev/null +++ b/test/src/baseline/baseline_manager_test.dart @@ -0,0 +1,267 @@ +import 'dart:io'; + +import 'package:dart_shield/src/baseline/baseline_manager.dart'; +import 'package:dart_shield/src/domain/analysis_issue.dart'; +import 'package:dart_shield/src/domain/issue_context.dart'; +import 'package:test/test.dart'; + +void main() { + group('BaselineManager', () { + late Directory tempDir; + late File baselineFile; + + setUp(() { + tempDir = Directory.systemTemp.createTempSync('baseline_test_'); + baselineFile = File('${tempDir.path}/shield_baseline.yaml'); + }); + + tearDown(() { + tempDir.deleteSync(recursive: true); + }); + + test('creates baseline file from issues', () async { + final manager = BaselineManager(baselineFile.path); + final issues = [ + AnalysisIssue( + ruleId: 'avoid_hardcoded_secrets', + severity: Severity.high, + message: 'Secret detected', + context: FileContext(filePath: 'lib/api.dart', line: 10, column: 5), + ), + ]; + + await manager.createBaseline(issues); + + expect(baselineFile.existsSync(), isTrue); + final content = baselineFile.readAsStringSync(); + expect(content, contains('avoid_hardcoded_secrets')); + expect(content, contains('lib/api.dart')); + expect(content, contains('10')); // line number + }); + + test('loads existing baseline', () async { + baselineFile.writeAsStringSync(''' +baseline: + - rule_id: avoid_hardcoded_secrets + file: lib/api.dart + line: 10 + fingerprint: abc123def456 +'''); + + final manager = BaselineManager(baselineFile.path); + final baseline = await manager.loadBaseline(); + + expect(baseline, hasLength(1)); + expect(baseline.first.ruleId, 'avoid_hardcoded_secrets'); + expect(baseline.first.file, 'lib/api.dart'); + expect(baseline.first.line, 10); + expect(baseline.first.fingerprint, 'abc123def456'); + }); + + test('filters out baselined issues', () async { + // Create a manager to get the fingerprint + final manager = BaselineManager(baselineFile.path); + + final baselinedIssue = AnalysisIssue( + ruleId: 'avoid_hardcoded_secrets', + severity: Severity.high, + message: 'Secret detected', + context: FileContext(filePath: 'lib/api.dart', line: 10, column: 5), + ); + + // Generate the fingerprint for the baselined issue + final fingerprint = manager.generateFingerprint(baselinedIssue); + + baselineFile.writeAsStringSync(''' +baseline: + - rule_id: avoid_hardcoded_secrets + file: lib/api.dart + line: 10 + fingerprint: $fingerprint +'''); + + final issues = [ + // This should be filtered (in baseline) + baselinedIssue, + // This should NOT be filtered (new issue) + AnalysisIssue( + ruleId: 'prefer_https_over_http', + severity: Severity.high, + message: 'HTTP detected', + context: FileContext(filePath: 'lib/client.dart', line: 20, column: 3), + ), + ]; + + final filtered = await manager.filterBaselined(issues); + + expect(filtered, hasLength(1)); + expect(filtered.first.ruleId, 'prefer_https_over_http'); + }); + + test('generates stable fingerprint', () { + final manager = BaselineManager(baselineFile.path); + + final issue = AnalysisIssue( + ruleId: 'test_rule', + severity: Severity.medium, + message: 'Test message', + context: FileContext(filePath: 'lib/test.dart', line: 5, column: 1), + ); + + final fp1 = manager.generateFingerprint(issue); + final fp2 = manager.generateFingerprint(issue); + + expect(fp1, equals(fp2)); + }); + + test('fingerprint changes when line changes', () { + final manager = BaselineManager(baselineFile.path); + + final issue1 = AnalysisIssue( + ruleId: 'test_rule', + severity: Severity.medium, + message: 'Test message', + context: FileContext(filePath: 'lib/test.dart', line: 5, column: 1), + ); + + final issue2 = AnalysisIssue( + ruleId: 'test_rule', + severity: Severity.medium, + message: 'Test message', + context: FileContext(filePath: 'lib/test.dart', line: 6, column: 1), + ); + + final fp1 = manager.generateFingerprint(issue1); + final fp2 = manager.generateFingerprint(issue2); + + expect(fp1, isNot(equals(fp2))); + }); + + test('fingerprint changes when file changes', () { + final manager = BaselineManager(baselineFile.path); + + final issue1 = AnalysisIssue( + ruleId: 'test_rule', + severity: Severity.medium, + message: 'Test message', + context: FileContext(filePath: 'lib/test.dart', line: 5, column: 1), + ); + + final issue2 = AnalysisIssue( + ruleId: 'test_rule', + severity: Severity.medium, + message: 'Test message', + context: FileContext(filePath: 'lib/other.dart', line: 5, column: 1), + ); + + final fp1 = manager.generateFingerprint(issue1); + final fp2 = manager.generateFingerprint(issue2); + + expect(fp1, isNot(equals(fp2))); + }); + + test('fingerprint changes when rule changes', () { + final manager = BaselineManager(baselineFile.path); + + final issue1 = AnalysisIssue( + ruleId: 'rule_a', + severity: Severity.medium, + message: 'Test message', + context: FileContext(filePath: 'lib/test.dart', line: 5, column: 1), + ); + + final issue2 = AnalysisIssue( + ruleId: 'rule_b', + severity: Severity.medium, + message: 'Test message', + context: FileContext(filePath: 'lib/test.dart', line: 5, column: 1), + ); + + final fp1 = manager.generateFingerprint(issue1); + final fp2 = manager.generateFingerprint(issue2); + + expect(fp1, isNot(equals(fp2))); + }); + + test('returns empty list when no baseline exists', () async { + final manager = BaselineManager('nonexistent.yaml'); + final baseline = await manager.loadBaseline(); + + expect(baseline, isEmpty); + }); + + test('returns all issues when no baseline exists', () async { + final manager = BaselineManager('nonexistent.yaml'); + final issues = [ + AnalysisIssue( + ruleId: 'test_rule', + severity: Severity.medium, + message: 'Test', + context: FileContext(filePath: 'a.dart', line: 1, column: 1), + ), + ]; + + final filtered = await manager.filterBaselined(issues); + + expect(filtered, hasLength(1)); + }); + + test('handles multiple issues in baseline', () async { + final manager = BaselineManager(baselineFile.path); + + final issue1 = AnalysisIssue( + ruleId: 'rule1', + severity: Severity.high, + message: 'Issue 1', + context: FileContext(filePath: 'a.dart', line: 1, column: 1), + ); + final issue2 = AnalysisIssue( + ruleId: 'rule2', + severity: Severity.medium, + message: 'Issue 2', + context: FileContext(filePath: 'b.dart', line: 2, column: 2), + ); + + await manager.createBaseline([issue1, issue2]); + + final baseline = await manager.loadBaseline(); + expect(baseline, hasLength(2)); + + final filtered = await manager.filterBaselined([issue1, issue2]); + expect(filtered, isEmpty); + }); + + test('handles empty issues list', () async { + final manager = BaselineManager(baselineFile.path); + + await manager.createBaseline([]); + + expect(baselineFile.existsSync(), isTrue); + + final baseline = await manager.loadBaseline(); + expect(baseline, isEmpty); + }); + + test('baseline file is human-readable YAML', () async { + final manager = BaselineManager(baselineFile.path); + final issues = [ + AnalysisIssue( + ruleId: 'avoid_hardcoded_secrets', + severity: Severity.high, + message: 'Secret detected', + context: FileContext(filePath: 'lib/api.dart', line: 10, column: 5), + ), + ]; + + await manager.createBaseline(issues); + + final content = baselineFile.readAsStringSync(); + // Check it's valid YAML structure + expect(content, contains('baseline:')); + expect(content, contains('rule_id:')); + expect(content, contains('file:')); + expect(content, contains('line:')); + expect(content, contains('fingerprint:')); + }); + }); +} From 0aa8cd8930c560492ab97e96771742e465714cea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20Novotn=C3=BD?= <62177414+yardexx@users.noreply.github.com> Date: Sun, 1 Feb 2026 23:40:23 +0100 Subject: [PATCH 4/9] fix: implement missing _filterBaselined method in ShieldRunner Add the _filterBaselined method that was being called but never defined, causing a compilation error. The method uses BaselineManager to filter out issues already recorded in the baseline file. --- lib/src/core/shield_runner.dart | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lib/src/core/shield_runner.dart b/lib/src/core/shield_runner.dart index c27f14b..75c4bab 100644 --- a/lib/src/core/shield_runner.dart +++ b/lib/src/core/shield_runner.dart @@ -142,6 +142,37 @@ class ShieldRunner { }).toList(); } + /// Filters out issues that are already recorded in the baseline file. + /// + /// This allows teams to adopt dart_shield in existing projects without + /// being overwhelmed by legacy issues. Only new violations are reported. + /// + /// For each [AnalysisSuccess] result, removes issues that match entries + /// in the baseline. [AnalysisFailure] results pass through unchanged. + Future> _filterBaselined( + List results, + String baselinePath, + ) async { + final manager = BaselineManager(baselinePath); + + final filtered = []; + for (final result in results) { + if (result is AnalysisSuccess) { + final filteredIssues = await manager.filterBaselined(result.issues); + filtered.add( + AnalysisSuccess( + analyzerId: result.analyzerId, + issues: filteredIssues, + duration: result.duration, + ), + ); + } else { + filtered.add(result); + } + } + return filtered; + } + /// Returns the list of reporters for the specified output [mode]. /// /// Supported modes: From 65bad287a1ff204e462690005dc26cbdfe486459 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20Novotn=C3=BD?= <62177414+yardexx@users.noreply.github.com> Date: Mon, 2 Feb 2026 20:02:22 +0100 Subject: [PATCH 5/9] feat: add 3 Flutter-specific security rules (#28) * feat: add 3 Flutter-specific security rules - avoid_insecure_webview_settings: detects unrestricted JavaScript mode in WebViews - avoid_unvalidated_deep_link: warns about unvalidated deep link parameters - avoid_webview_javascript_bridge: detects potentially sensitive JavaScript channels * test: add tests for Flutter-specific security rules Add comprehensive tests for the 3 Flutter-specific rules: - avoid_insecure_webview_settings: 7 tests - avoid_unvalidated_deep_link: 8 tests - avoid_webview_javascript_bridge: 12 tests --- .../avoid_insecure_webview_settings.dart | 68 ++++++ .../flutter/avoid_unvalidated_deep_link.dart | 60 +++++ .../avoid_webview_javascript_bridge.dart | 75 +++++++ lib/src/analyzers/code/rules/rules.dart | 16 +- .../avoid_insecure_webview_settings_test.dart | 140 ++++++++++++ .../avoid_unvalidated_deep_link_test.dart | 145 ++++++++++++ .../avoid_webview_javascript_bridge_test.dart | 211 ++++++++++++++++++ 7 files changed, 712 insertions(+), 3 deletions(-) create mode 100644 lib/src/analyzers/code/rules/flutter/avoid_insecure_webview_settings.dart create mode 100644 lib/src/analyzers/code/rules/flutter/avoid_unvalidated_deep_link.dart create mode 100644 lib/src/analyzers/code/rules/flutter/avoid_webview_javascript_bridge.dart create mode 100644 test/src/analyzers/code/rules/flutter/avoid_insecure_webview_settings_test.dart create mode 100644 test/src/analyzers/code/rules/flutter/avoid_unvalidated_deep_link_test.dart create mode 100644 test/src/analyzers/code/rules/flutter/avoid_webview_javascript_bridge_test.dart diff --git a/lib/src/analyzers/code/rules/flutter/avoid_insecure_webview_settings.dart b/lib/src/analyzers/code/rules/flutter/avoid_insecure_webview_settings.dart new file mode 100644 index 0000000..5dae93f --- /dev/null +++ b/lib/src/analyzers/code/rules/flutter/avoid_insecure_webview_settings.dart @@ -0,0 +1,68 @@ +import 'package:analyzer/analysis_rule/analysis_rule.dart'; +import 'package:analyzer/analysis_rule/rule_context.dart'; +import 'package:analyzer/analysis_rule/rule_visitor_registry.dart'; +import 'package:analyzer/dart/ast/ast.dart'; +import 'package:analyzer/dart/ast/visitor.dart'; +import 'package:analyzer/error/error.dart'; + +/// Detects insecure WebView settings in Flutter apps. +/// +/// WebViews with unrestricted JavaScript mode can be exploited +/// for cross-site scripting (XSS) attacks. +class AvoidInsecureWebviewSettings extends AnalysisRule { + AvoidInsecureWebviewSettings() + : super( + name: 'avoid_insecure_webview_settings', + description: + 'Avoid enabling unrestricted JavaScript mode in WebViews.', + ); + + static const LintCode code = LintCode( + 'avoid_insecure_webview_settings', + 'WebView has unrestricted JavaScript mode enabled.', + correctionMessage: + 'Consider using JavaScriptMode.disabled or implement ' + 'proper content security policies.', + ); + + @override + DiagnosticCode get diagnosticCode => code; + + @override + void registerNodeProcessors( + RuleVisitorRegistry registry, + RuleContext context, + ) { + final visitor = _Visitor(rule: this); + registry.addInstanceCreationExpression(this, visitor); + } +} + +class _Visitor extends SimpleAstVisitor { + _Visitor({required this.rule}); + final AnalysisRule rule; + + @override + void visitInstanceCreationExpression(InstanceCreationExpression node) { + final typeName = node.constructorName.type.element?.name; + + // Check for WebView or WebViewWidget with unsafe settings + if (typeName == 'WebView' || typeName == 'WebViewWidget') { + for (final arg in node.argumentList.arguments) { + if (arg is NamedExpression) { + final name = arg.name.label.name; + if (name == 'javascriptMode' || name == 'javaScriptMode') { + final expr = arg.expression; + if (expr is PrefixedIdentifier) { + final value = expr.identifier.name; + if (value == 'unrestricted') { + rule.reportAtNode(node); + return; + } + } + } + } + } + } + } +} diff --git a/lib/src/analyzers/code/rules/flutter/avoid_unvalidated_deep_link.dart b/lib/src/analyzers/code/rules/flutter/avoid_unvalidated_deep_link.dart new file mode 100644 index 0000000..a0a6b12 --- /dev/null +++ b/lib/src/analyzers/code/rules/flutter/avoid_unvalidated_deep_link.dart @@ -0,0 +1,60 @@ +import 'package:analyzer/analysis_rule/analysis_rule.dart'; +import 'package:analyzer/analysis_rule/rule_context.dart'; +import 'package:analyzer/analysis_rule/rule_visitor_registry.dart'; +import 'package:analyzer/dart/ast/ast.dart'; +import 'package:analyzer/dart/ast/visitor.dart'; +import 'package:analyzer/error/error.dart'; + +/// Detects potential deep link parameter handling without validation. +/// +/// Deep link parameters from external sources should be validated +/// before being used in sensitive operations. +class AvoidUnvalidatedDeepLink extends AnalysisRule { + AvoidUnvalidatedDeepLink() + : super( + name: 'avoid_unvalidated_deep_link', + description: + 'Deep link parameters should be validated before use in ' + 'sensitive operations.', + ); + + static const LintCode code = LintCode( + 'avoid_unvalidated_deep_link', + 'Deep link parameter used without apparent validation.', + correctionMessage: + 'Validate deep link parameters before using them in navigation, ' + 'database queries, or API calls.', + ); + + @override + DiagnosticCode get diagnosticCode => code; + + @override + void registerNodeProcessors( + RuleVisitorRegistry registry, + RuleContext context, + ) { + final visitor = _Visitor(rule: this); + registry.addMethodInvocation(this, visitor); + } +} + +class _Visitor extends SimpleAstVisitor { + _Visitor({required this.rule}); + final AnalysisRule rule; + + @override + void visitMethodInvocation(MethodInvocation node) { + final methodName = node.methodName.name; + + // Check for getInitialLink or linkStream handlers + if (methodName == 'getInitialLink' || + methodName == 'getInitialUri' || + methodName == 'getLatestLink' || + methodName == 'getLatestUri') { + // This is a detection point - warn about potential misuse + // In real usage, this would integrate with data flow analysis + rule.reportAtNode(node); + } + } +} diff --git a/lib/src/analyzers/code/rules/flutter/avoid_webview_javascript_bridge.dart b/lib/src/analyzers/code/rules/flutter/avoid_webview_javascript_bridge.dart new file mode 100644 index 0000000..37df17f --- /dev/null +++ b/lib/src/analyzers/code/rules/flutter/avoid_webview_javascript_bridge.dart @@ -0,0 +1,75 @@ +import 'package:analyzer/analysis_rule/analysis_rule.dart'; +import 'package:analyzer/analysis_rule/rule_context.dart'; +import 'package:analyzer/analysis_rule/rule_visitor_registry.dart'; +import 'package:analyzer/dart/ast/ast.dart'; +import 'package:analyzer/dart/ast/visitor.dart'; +import 'package:analyzer/error/error.dart'; + +/// Detects potentially insecure JavaScript channels in WebViews. +/// +/// JavaScript bridges can expose sensitive app functionality to web content +/// if not properly validated. +class AvoidWebviewJavascriptBridge extends AnalysisRule { + AvoidWebviewJavascriptBridge() + : super( + name: 'avoid_webview_javascript_bridge', + description: + 'JavaScript channels may expose sensitive app functionality.', + ); + + static const LintCode code = LintCode( + 'avoid_webview_javascript_bridge', + 'JavaScript channel may expose sensitive app functionality to web content.', + correctionMessage: + 'Ensure the JavaScript channel validates all incoming messages ' + 'and does not expose sensitive operations.', + ); + + @override + DiagnosticCode get diagnosticCode => code; + + @override + void registerNodeProcessors( + RuleVisitorRegistry registry, + RuleContext context, + ) { + final visitor = _Visitor(rule: this); + registry.addMethodInvocation(this, visitor); + } +} + +class _Visitor extends SimpleAstVisitor { + _Visitor({required this.rule}); + final AnalysisRule rule; + + static const _sensitiveOperations = [ + 'token', + 'password', + 'credential', + 'auth', + 'secret', + 'private', + 'key', + ]; + + @override + void visitMethodInvocation(MethodInvocation node) { + final methodName = node.methodName.name; + + // Check for addJavaScriptChannel or similar + if (methodName == 'addJavaScriptChannel' || + methodName == 'addJavascriptChannel') { + // Check if the channel name suggests sensitive data handling + final args = node.argumentList.arguments; + if (args.isNotEmpty) { + final firstArg = args.first; + if (firstArg is SimpleStringLiteral) { + final channelName = firstArg.value.toLowerCase(); + if (_sensitiveOperations.any((op) => channelName.contains(op))) { + rule.reportAtNode(node); + } + } + } + } + } +} diff --git a/lib/src/analyzers/code/rules/rules.dart b/lib/src/analyzers/code/rules/rules.dart index 5a51d43..8a88005 100644 --- a/lib/src/analyzers/code/rules/rules.dart +++ b/lib/src/analyzers/code/rules/rules.dart @@ -1,14 +1,24 @@ import 'package:analyzer/analysis_rule/analysis_rule.dart'; import 'package:dart_shield/src/analyzers/code/rules/cryptography/avoid_weak_hashing.dart'; import 'package:dart_shield/src/analyzers/code/rules/cryptography/prefer_secure_random.dart'; +import 'package:dart_shield/src/analyzers/code/rules/flutter/avoid_insecure_webview_settings.dart'; +import 'package:dart_shield/src/analyzers/code/rules/flutter/avoid_unvalidated_deep_link.dart'; +import 'package:dart_shield/src/analyzers/code/rules/flutter/avoid_webview_javascript_bridge.dart'; import 'package:dart_shield/src/analyzers/code/rules/network/avoid_harcoded_urls.dart'; import 'package:dart_shield/src/analyzers/code/rules/network/prefer_https_over_http.dart'; import 'package:dart_shield/src/analyzers/code/rules/secrets/avoid_hardcoded_secrets.dart'; final List rules = [ - AvoidHardcodedSecrets(), - AvoidHardcodedUrls(), + // Cryptography AvoidWeakHashing(), - PreferHttpsOverHttp(), PreferSecureRandom(), + // Flutter + AvoidInsecureWebviewSettings(), + AvoidUnvalidatedDeepLink(), + AvoidWebviewJavascriptBridge(), + // Network + AvoidHardcodedUrls(), + PreferHttpsOverHttp(), + // Secrets + AvoidHardcodedSecrets(), ]; diff --git a/test/src/analyzers/code/rules/flutter/avoid_insecure_webview_settings_test.dart b/test/src/analyzers/code/rules/flutter/avoid_insecure_webview_settings_test.dart new file mode 100644 index 0000000..27c6af5 --- /dev/null +++ b/test/src/analyzers/code/rules/flutter/avoid_insecure_webview_settings_test.dart @@ -0,0 +1,140 @@ +// ignore_for_file: non_constant_identifier_names + +import 'package:analyzer/src/lint/registry.dart'; +import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/flutter/avoid_insecure_webview_settings.dart'; +import 'package:test_reflective_loader/test_reflective_loader.dart'; + +void main() { + defineReflectiveSuite(() { + defineReflectiveTests(AvoidInsecureWebviewSettingsTest); + }); +} + +@reflectiveTest +class AvoidInsecureWebviewSettingsTest extends AnalysisRuleTest { + @override + String get analysisRule => 'avoid_insecure_webview_settings'; + + @override + void setUp() { + Registry.ruleRegistry.registerLintRule(AvoidInsecureWebviewSettings()); + + // Add stub for webview_flutter package + newPackage('webview_flutter').addFile('lib/webview_flutter.dart', ''' +enum JavaScriptMode { + disabled, + unrestricted, +} + +class WebViewController { + Future setJavaScriptMode(JavaScriptMode mode) async {} +} + +class WebViewWidget { + WebViewWidget({ + required WebViewController controller, + JavaScriptMode? javaScriptMode, + }); +} + +class WebView { + WebView({ + String? initialUrl, + JavaScriptMode? javascriptMode, + }); +} +'''); + + super.setUp(); + } + + Future test_webViewWithUnrestrictedJs_reports() async { + await assertDiagnostics( + ''' +import 'package:webview_flutter/webview_flutter.dart'; +void f() { + final webview = WebView( + initialUrl: 'https://example.com', + javascriptMode: JavaScriptMode.unrestricted, + ); +} +''', + [lint(84, 100)], + ); + } + + Future test_webViewWithDisabledJs_noReport() async { + await assertNoDiagnostics(''' +import 'package:webview_flutter/webview_flutter.dart'; +void f() { + final webview = WebView( + initialUrl: 'https://example.com', + javascriptMode: JavaScriptMode.disabled, + ); +} +'''); + } + + Future test_webViewWithoutJsMode_noReport() async { + await assertNoDiagnostics(''' +import 'package:webview_flutter/webview_flutter.dart'; +void f() { + final webview = WebView( + initialUrl: 'https://example.com', + ); +} +'''); + } + + Future test_webViewWidgetWithUnrestrictedJs_reports() async { + await assertDiagnostics( + ''' +import 'package:webview_flutter/webview_flutter.dart'; +void f(WebViewController controller) { + final widget = WebViewWidget( + controller: controller, + javaScriptMode: JavaScriptMode.unrestricted, + ); +} +''', + [lint(111, 95)], + ); + } + + Future test_webViewWidgetWithDisabledJs_noReport() async { + await assertNoDiagnostics(''' +import 'package:webview_flutter/webview_flutter.dart'; +void f(WebViewController controller) { + final widget = WebViewWidget( + controller: controller, + javaScriptMode: JavaScriptMode.disabled, + ); +} +'''); + } + + Future test_webViewWidgetWithoutJsMode_noReport() async { + await assertNoDiagnostics(''' +import 'package:webview_flutter/webview_flutter.dart'; +void f(WebViewController controller) { + final widget = WebViewWidget( + controller: controller, + ); +} +'''); + } + + Future test_unrelatedInstanceCreation_noReport() async { + await assertNoDiagnostics(''' +class MyWidget { + MyWidget({String? javascriptMode}); +} +void f() { + final widget = MyWidget( + javascriptMode: 'unrestricted', + ); +} +'''); + } +} diff --git a/test/src/analyzers/code/rules/flutter/avoid_unvalidated_deep_link_test.dart b/test/src/analyzers/code/rules/flutter/avoid_unvalidated_deep_link_test.dart new file mode 100644 index 0000000..dafdfa5 --- /dev/null +++ b/test/src/analyzers/code/rules/flutter/avoid_unvalidated_deep_link_test.dart @@ -0,0 +1,145 @@ +// ignore_for_file: non_constant_identifier_names + +import 'package:analyzer/src/lint/registry.dart'; +import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/flutter/avoid_unvalidated_deep_link.dart'; +import 'package:test_reflective_loader/test_reflective_loader.dart'; + +void main() { + defineReflectiveSuite(() { + defineReflectiveTests(AvoidUnvalidatedDeepLinkTest); + }); +} + +@reflectiveTest +class AvoidUnvalidatedDeepLinkTest extends AnalysisRuleTest { + @override + String get analysisRule => 'avoid_unvalidated_deep_link'; + + @override + void setUp() { + Registry.ruleRegistry.registerLintRule(AvoidUnvalidatedDeepLink()); + + // Add stub for app_links package + newPackage('app_links').addFile('lib/app_links.dart', ''' +class AppLinks { + Future getInitialLink() async => null; + Future getLatestLink() async => null; + Future getInitialUri() async => null; + Future getLatestUri() async => null; + Stream get uriLinkStream => Stream.empty(); +} +'''); + + // Add stub for uni_links package + newPackage('uni_links').addFile('lib/uni_links.dart', ''' +Future getInitialLink() async => null; +Future getInitialUri() async => null; +Stream get linkStream => Stream.empty(); +Stream get uriLinkStream => Stream.empty(); +'''); + + super.setUp(); + } + + Future test_getInitialLink_reports() async { + await assertDiagnostics( + ''' +import 'package:app_links/app_links.dart'; +void f() async { + final appLinks = AppLinks(); + final link = await appLinks.getInitialLink(); +} +''', + [lint(112, 25)], + ); + } + + Future test_getLatestLink_reports() async { + await assertDiagnostics( + ''' +import 'package:app_links/app_links.dart'; +void f() async { + final appLinks = AppLinks(); + final link = await appLinks.getLatestLink(); +} +''', + [lint(112, 24)], + ); + } + + Future test_getInitialUri_reports() async { + await assertDiagnostics( + ''' +import 'package:app_links/app_links.dart'; +void f() async { + final appLinks = AppLinks(); + final uri = await appLinks.getInitialUri(); +} +''', + [lint(111, 24)], + ); + } + + Future test_getLatestUri_reports() async { + await assertDiagnostics( + ''' +import 'package:app_links/app_links.dart'; +void f() async { + final appLinks = AppLinks(); + final uri = await appLinks.getLatestUri(); +} +''', + [lint(111, 23)], + ); + } + + Future test_uniLinksGetInitialLink_reports() async { + await assertDiagnostics( + ''' +import 'package:uni_links/uni_links.dart' as uni; +void f() async { + final link = await uni.getInitialLink(); +} +''', + [lint(88, 20)], + ); + } + + Future test_uniLinksGetInitialUri_reports() async { + await assertDiagnostics( + ''' +import 'package:uni_links/uni_links.dart' as uni; +void f() async { + final uri = await uni.getInitialUri(); +} +''', + [lint(87, 19)], + ); + } + + Future test_unrelatedMethodCall_noReport() async { + await assertNoDiagnostics(''' +class MyClass { + String getInitialValue() => 'value'; +} +void f() { + final obj = MyClass(); + final value = obj.getInitialValue(); +} +'''); + } + + Future test_streamAccess_noReport() async { + // Stream access is not currently flagged (different pattern) + await assertNoDiagnostics(''' +import 'package:app_links/app_links.dart'; +void f() { + final appLinks = AppLinks(); + appLinks.uriLinkStream.listen((uri) { + print(uri); + }); +} +'''); + } +} diff --git a/test/src/analyzers/code/rules/flutter/avoid_webview_javascript_bridge_test.dart b/test/src/analyzers/code/rules/flutter/avoid_webview_javascript_bridge_test.dart new file mode 100644 index 0000000..c12c9c3 --- /dev/null +++ b/test/src/analyzers/code/rules/flutter/avoid_webview_javascript_bridge_test.dart @@ -0,0 +1,211 @@ +// ignore_for_file: non_constant_identifier_names + +import 'package:analyzer/src/lint/registry.dart'; +import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/flutter/avoid_webview_javascript_bridge.dart'; +import 'package:test_reflective_loader/test_reflective_loader.dart'; + +void main() { + defineReflectiveSuite(() { + defineReflectiveTests(AvoidWebviewJavascriptBridgeTest); + }); +} + +@reflectiveTest +class AvoidWebviewJavascriptBridgeTest extends AnalysisRuleTest { + @override + String get analysisRule => 'avoid_webview_javascript_bridge'; + + @override + void setUp() { + Registry.ruleRegistry.registerLintRule(AvoidWebviewJavascriptBridge()); + + // Add stub for webview_flutter package + newPackage('webview_flutter').addFile('lib/webview_flutter.dart', ''' +typedef JavaScriptMessageHandler = void Function(JavaScriptMessage message); + +class JavaScriptMessage { + final String message; + JavaScriptMessage(this.message); +} + +class WebViewController { + Future addJavaScriptChannel( + String name, { + required JavaScriptMessageHandler onMessageReceived, + }) async {} +} +'''); + + super.setUp(); + } + + Future test_addJavaScriptChannelWithTokenName_reports() async { + await assertDiagnostics( + ''' +import 'package:webview_flutter/webview_flutter.dart'; +void f(WebViewController controller) { + controller.addJavaScriptChannel( + 'userToken', + onMessageReceived: (msg) => print(msg), + ); +} +''', + [lint(96, 97)], + ); + } + + Future test_addJavaScriptChannelWithPasswordName_reports() async { + await assertDiagnostics( + ''' +import 'package:webview_flutter/webview_flutter.dart'; +void f(WebViewController controller) { + controller.addJavaScriptChannel( + 'passwordHandler', + onMessageReceived: (msg) => print(msg), + ); +} +''', + [lint(96, 103)], + ); + } + + Future test_addJavaScriptChannelWithCredentialName_reports() async { + await assertDiagnostics( + ''' +import 'package:webview_flutter/webview_flutter.dart'; +void f(WebViewController controller) { + controller.addJavaScriptChannel( + 'credentialBridge', + onMessageReceived: (msg) => print(msg), + ); +} +''', + [lint(96, 104)], + ); + } + + Future test_addJavaScriptChannelWithAuthName_reports() async { + await assertDiagnostics( + ''' +import 'package:webview_flutter/webview_flutter.dart'; +void f(WebViewController controller) { + controller.addJavaScriptChannel( + 'authChannel', + onMessageReceived: (msg) => print(msg), + ); +} +''', + [lint(96, 99)], + ); + } + + Future test_addJavaScriptChannelWithSecretName_reports() async { + await assertDiagnostics( + ''' +import 'package:webview_flutter/webview_flutter.dart'; +void f(WebViewController controller) { + controller.addJavaScriptChannel( + 'secretData', + onMessageReceived: (msg) => print(msg), + ); +} +''', + [lint(96, 98)], + ); + } + + Future test_addJavaScriptChannelWithPrivateName_reports() async { + await assertDiagnostics( + ''' +import 'package:webview_flutter/webview_flutter.dart'; +void f(WebViewController controller) { + controller.addJavaScriptChannel( + 'privateInfo', + onMessageReceived: (msg) => print(msg), + ); +} +''', + [lint(96, 99)], + ); + } + + Future test_addJavaScriptChannelWithKeyName_reports() async { + await assertDiagnostics( + ''' +import 'package:webview_flutter/webview_flutter.dart'; +void f(WebViewController controller) { + controller.addJavaScriptChannel( + 'apiKeyChannel', + onMessageReceived: (msg) => print(msg), + ); +} +''', + [lint(96, 101)], + ); + } + + Future test_addJavaScriptChannelWithSafeName_noReport() async { + await assertNoDiagnostics(''' +import 'package:webview_flutter/webview_flutter.dart'; +void f(WebViewController controller) { + controller.addJavaScriptChannel( + 'messageHandler', + onMessageReceived: (msg) => print(msg), + ); +} +'''); + } + + Future test_addJavaScriptChannelWithNavigationName_noReport() async { + await assertNoDiagnostics(''' +import 'package:webview_flutter/webview_flutter.dart'; +void f(WebViewController controller) { + controller.addJavaScriptChannel( + 'navigationBridge', + onMessageReceived: (msg) => print(msg), + ); +} +'''); + } + + Future test_addJavaScriptChannelWithUiName_noReport() async { + await assertNoDiagnostics(''' +import 'package:webview_flutter/webview_flutter.dart'; +void f(WebViewController controller) { + controller.addJavaScriptChannel( + 'uiCallbacks', + onMessageReceived: (msg) => print(msg), + ); +} +'''); + } + + Future test_unrelatedMethodWithSafeName_noReport() async { + // Custom class with addJavaScriptChannel method using a safe name + await assertNoDiagnostics(''' +class MyClass { + void addJavaScriptChannel(String name) {} +} +void f() { + final obj = MyClass(); + obj.addJavaScriptChannel('messageHandler'); +} +'''); + } + + Future test_addJavaScriptChannelCaseInsensitive_reports() async { + await assertDiagnostics( + ''' +import 'package:webview_flutter/webview_flutter.dart'; +void f(WebViewController controller) { + controller.addJavaScriptChannel( + 'UserTOKEN', + onMessageReceived: (msg) => print(msg), + ); +} +''', + [lint(96, 97)], + ); + } +} From b30e37a02e17514fed17302054ced5e38fc206bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20Novotn=C3=BD?= <62177414+yardexx@users.noreply.github.com> Date: Mon, 2 Feb 2026 20:06:21 +0100 Subject: [PATCH 6/9] feat: new security rules (#30) * feat: add 6 new security rules New rules: - avoid_empty_catch: Detects empty catch blocks (CWE-390) - avoid_logging_sensitive_data: Detects logging of sensitive variables (CWE-532) - avoid_certificate_pinning_bypass: Detects SSL bypass patterns (CWE-295) - avoid_dynamic_sql_queries: Detects SQL injection risks (CWE-89) - avoid_shared_preferences_for_secrets: Detects unencrypted secret storage (CWE-312) - avoid_insecure_file_storage: Detects sensitive file writes (CWE-922) Total rules: 11 (5 existing + 6 new) * test: add comprehensive tests for new security rules Tests added for: - avoid_empty_catch: 19 tests covering empty/non-empty catch blocks - avoid_dynamic_sql_queries: 16 tests for SQL injection detection - avoid_logging_sensitive_data: 20 tests for logging sensitive vars - avoid_certificate_pinning_bypass: 11 tests for SSL bypass detection - avoid_insecure_file_storage: 14 tests for sensitive file names - avoid_shared_preferences_for_secrets: 14 tests for unencrypted storage Also fixed avoid_empty_catch rule to handle AwaitExpression. Total: 90 new tests --- .../code/rules/auth/avoid_empty_catch.dart | 86 +++++ .../injection/avoid_dynamic_sql_queries.dart | 82 +++++ .../logging/avoid_logging_sensitive_data.dart | 92 ++++++ .../avoid_certificate_pinning_bypass.dart | 78 +++++ lib/src/analyzers/code/rules/rules.dart | 20 ++ .../storage/avoid_insecure_file_storage.dart | 74 +++++ .../avoid_shared_preferences_for_secrets.dart | 90 ++++++ .../rules/auth/avoid_empty_catch_test.dart | 303 ++++++++++++++++++ .../avoid_dynamic_sql_queries_test.dart | 205 ++++++++++++ .../avoid_logging_sensitive_data_test.dart | 249 ++++++++++++++ ...avoid_certificate_pinning_bypass_test.dart | 140 ++++++++ .../avoid_insecure_file_storage_test.dart | 197 ++++++++++++ ...d_shared_preferences_for_secrets_test.dart | 204 ++++++++++++ 13 files changed, 1820 insertions(+) create mode 100644 lib/src/analyzers/code/rules/auth/avoid_empty_catch.dart create mode 100644 lib/src/analyzers/code/rules/injection/avoid_dynamic_sql_queries.dart create mode 100644 lib/src/analyzers/code/rules/logging/avoid_logging_sensitive_data.dart create mode 100644 lib/src/analyzers/code/rules/network/avoid_certificate_pinning_bypass.dart create mode 100644 lib/src/analyzers/code/rules/storage/avoid_insecure_file_storage.dart create mode 100644 lib/src/analyzers/code/rules/storage/avoid_shared_preferences_for_secrets.dart create mode 100644 test/src/analyzers/code/rules/auth/avoid_empty_catch_test.dart create mode 100644 test/src/analyzers/code/rules/injection/avoid_dynamic_sql_queries_test.dart create mode 100644 test/src/analyzers/code/rules/logging/avoid_logging_sensitive_data_test.dart create mode 100644 test/src/analyzers/code/rules/network/avoid_certificate_pinning_bypass_test.dart create mode 100644 test/src/analyzers/code/rules/storage/avoid_insecure_file_storage_test.dart create mode 100644 test/src/analyzers/code/rules/storage/avoid_shared_preferences_for_secrets_test.dart diff --git a/lib/src/analyzers/code/rules/auth/avoid_empty_catch.dart b/lib/src/analyzers/code/rules/auth/avoid_empty_catch.dart new file mode 100644 index 0000000..eeb8419 --- /dev/null +++ b/lib/src/analyzers/code/rules/auth/avoid_empty_catch.dart @@ -0,0 +1,86 @@ +import 'package:analyzer/analysis_rule/analysis_rule.dart'; +import 'package:analyzer/analysis_rule/rule_context.dart'; +import 'package:analyzer/analysis_rule/rule_visitor_registry.dart'; +import 'package:analyzer/dart/ast/ast.dart'; +import 'package:analyzer/dart/ast/visitor.dart'; +import 'package:analyzer/error/error.dart'; + +/// Detects empty catch blocks that silently swallow exceptions. +/// +/// Empty catch blocks can hide security issues and make debugging difficult. +class AvoidEmptyCatch extends AnalysisRule { + AvoidEmptyCatch() + : super( + name: 'avoid_empty_catch', + description: + 'Avoid empty catch blocks that silently swallow exceptions.', + ); + + static const LintCode code = LintCode( + 'avoid_empty_catch', + 'Empty catch block silently swallows exceptions.', + correctionMessage: + 'Handle the exception, log it, or rethrow it. ' + 'Never silently ignore exceptions.', + ); + + @override + DiagnosticCode get diagnosticCode => code; + + @override + void registerNodeProcessors( + RuleVisitorRegistry registry, + RuleContext context, + ) { + final visitor = _Visitor(rule: this); + registry.addCatchClause(this, visitor); + } +} + +class _Visitor extends SimpleAstVisitor { + _Visitor({required this.rule}); + final AnalysisRule rule; + + @override + void visitCatchClause(CatchClause node) { + final body = node.body; + final statements = body.statements; + + // Check if the catch block is empty or contains only comments + if (statements.isEmpty) { + rule.reportAtNode(node); + return; + } + + // Check if all statements are empty statements or just have no effect + final hasEffectiveStatement = statements.any((stmt) { + // Empty statement + if (stmt is EmptyStatement) return false; + + // Expression statement with just a variable reference (no effect) + if (stmt is ExpressionStatement) { + final expr = stmt.expression; + // Check for rethrow, throw, return, method calls, etc. + if (expr is RethrowExpression) return true; + if (expr is ThrowExpression) return true; + if (expr is MethodInvocation) return true; + if (expr is FunctionExpressionInvocation) return true; + if (expr is AssignmentExpression) return true; + if (expr is AwaitExpression) return true; + // Simple identifier alone has no effect + if (expr is SimpleIdentifier) return false; + } + + if (stmt is ReturnStatement) return true; + if (stmt is IfStatement) return true; + if (stmt is Block) return true; + if (stmt is VariableDeclarationStatement) return true; + + return false; + }); + + if (!hasEffectiveStatement) { + rule.reportAtNode(node); + } + } +} diff --git a/lib/src/analyzers/code/rules/injection/avoid_dynamic_sql_queries.dart b/lib/src/analyzers/code/rules/injection/avoid_dynamic_sql_queries.dart new file mode 100644 index 0000000..0a0b19d --- /dev/null +++ b/lib/src/analyzers/code/rules/injection/avoid_dynamic_sql_queries.dart @@ -0,0 +1,82 @@ +import 'package:analyzer/analysis_rule/analysis_rule.dart'; +import 'package:analyzer/analysis_rule/rule_context.dart'; +import 'package:analyzer/analysis_rule/rule_visitor_registry.dart'; +import 'package:analyzer/dart/ast/ast.dart'; +import 'package:analyzer/dart/ast/visitor.dart'; +import 'package:analyzer/error/error.dart'; + +/// Detects dynamic SQL queries with string interpolation. +/// +/// CWE-89: SQL Injection +class AvoidDynamicSqlQueries extends AnalysisRule { + AvoidDynamicSqlQueries() + : super( + name: 'avoid_dynamic_sql_queries', + description: + 'Avoid dynamic SQL queries with string interpolation to ' + 'prevent SQL injection.', + ); + + static const LintCode code = LintCode( + 'avoid_dynamic_sql_queries', + 'Avoid dynamic SQL queries with string interpolation.', + correctionMessage: + 'Use parameterized queries or prepared statements ' + 'instead of string interpolation.', + ); + + @override + DiagnosticCode get diagnosticCode => code; + + @override + void registerNodeProcessors( + RuleVisitorRegistry registry, + RuleContext context, + ) { + final visitor = _Visitor(rule: this); + registry.addStringInterpolation(this, visitor); + } +} + +class _Visitor extends SimpleAstVisitor { + _Visitor({required this.rule}); + final AnalysisRule rule; + + static const _sqlKeywords = [ + 'SELECT', + 'INSERT', + 'UPDATE', + 'DELETE', + 'DROP', + 'CREATE', + 'ALTER', + 'TRUNCATE', + ]; + + @override + void visitStringInterpolation(StringInterpolation node) { + // Get the full string content + final buffer = StringBuffer(); + for (final element in node.elements) { + if (element is InterpolationString) { + buffer.write(element.value); + } else if (element is InterpolationExpression) { + buffer.write('\${}'); // Placeholder for interpolation + } + } + final stringValue = buffer.toString().toUpperCase(); + + // Check if the string looks like a SQL query + final hasSqlKeyword = _sqlKeywords.any( + (keyword) => stringValue.contains(keyword), + ); + + // Check if it has interpolation (not just a static SQL string) + final hasInterpolation = + node.elements.any((e) => e is InterpolationExpression); + + if (hasSqlKeyword && hasInterpolation) { + rule.reportAtNode(node); + } + } +} diff --git a/lib/src/analyzers/code/rules/logging/avoid_logging_sensitive_data.dart b/lib/src/analyzers/code/rules/logging/avoid_logging_sensitive_data.dart new file mode 100644 index 0000000..41d6644 --- /dev/null +++ b/lib/src/analyzers/code/rules/logging/avoid_logging_sensitive_data.dart @@ -0,0 +1,92 @@ +import 'package:analyzer/analysis_rule/analysis_rule.dart'; +import 'package:analyzer/analysis_rule/rule_context.dart'; +import 'package:analyzer/analysis_rule/rule_visitor_registry.dart'; +import 'package:analyzer/dart/ast/ast.dart'; +import 'package:analyzer/dart/ast/visitor.dart'; +import 'package:analyzer/error/error.dart'; + +/// Detects logging/printing of sensitive data. +/// +/// CWE-532: Insertion of Sensitive Information into Log File +class AvoidLoggingSensitiveData extends AnalysisRule { + AvoidLoggingSensitiveData() + : super( + name: 'avoid_logging_sensitive_data', + description: 'Avoid logging sensitive data like passwords or tokens.', + ); + + static const LintCode code = LintCode( + 'avoid_logging_sensitive_data', + 'Avoid logging sensitive data like passwords or tokens.', + correctionMessage: + 'Remove sensitive data from log statements or use ' + 'redaction before logging.', + ); + + @override + DiagnosticCode get diagnosticCode => code; + + @override + void registerNodeProcessors( + RuleVisitorRegistry registry, + RuleContext context, + ) { + final visitor = _Visitor(rule: this); + registry.addMethodInvocation(this, visitor); + } +} + +class _Visitor extends SimpleAstVisitor { + _Visitor({required this.rule}); + final AnalysisRule rule; + + static const _sensitivePatterns = [ + 'password', + 'passwd', + 'token', + 'secret', + 'apikey', + 'api_key', + 'credential', + 'privatekey', + 'private_key', + 'accesstoken', + 'access_token', + 'authtoken', + 'auth_token', + 'auth', + ]; + + static const _loggingFunctions = [ + 'print', + 'debugPrint', + 'log', + 'logger', + 'info', + 'debug', + 'warning', + 'error', + 'severe', + ]; + + @override + void visitMethodInvocation(MethodInvocation node) { + final methodName = node.methodName.name.toLowerCase(); + + // Check if this is a logging function + if (!_loggingFunctions.any((f) => methodName.contains(f))) { + return; + } + + // Check arguments for sensitive variable names + for (final arg in node.argumentList.arguments) { + if (arg is SimpleIdentifier) { + final argName = arg.name.toLowerCase(); + if (_sensitivePatterns.any((p) => argName.contains(p))) { + rule.reportAtNode(node); + return; + } + } + } + } +} diff --git a/lib/src/analyzers/code/rules/network/avoid_certificate_pinning_bypass.dart b/lib/src/analyzers/code/rules/network/avoid_certificate_pinning_bypass.dart new file mode 100644 index 0000000..a514f0f --- /dev/null +++ b/lib/src/analyzers/code/rules/network/avoid_certificate_pinning_bypass.dart @@ -0,0 +1,78 @@ +import 'package:analyzer/analysis_rule/analysis_rule.dart'; +import 'package:analyzer/analysis_rule/rule_context.dart'; +import 'package:analyzer/analysis_rule/rule_visitor_registry.dart'; +import 'package:analyzer/dart/ast/ast.dart'; +import 'package:analyzer/dart/ast/visitor.dart'; +import 'package:analyzer/error/error.dart'; + +/// Detects bypassing of certificate pinning/validation. +/// +/// CWE-295: Improper Certificate Validation +class AvoidCertificatePinningBypass extends AnalysisRule { + AvoidCertificatePinningBypass() + : super( + name: 'avoid_certificate_pinning_bypass', + description: 'Avoid bypassing SSL certificate validation.', + ); + + static const LintCode code = LintCode( + 'avoid_certificate_pinning_bypass', + 'Avoid bypassing SSL certificate validation.', + correctionMessage: + 'Implement proper certificate validation instead of ' + 'returning true unconditionally.', + ); + + @override + DiagnosticCode get diagnosticCode => code; + + @override + void registerNodeProcessors( + RuleVisitorRegistry registry, + RuleContext context, + ) { + final visitor = _Visitor(rule: this); + registry.addAssignmentExpression(this, visitor); + } +} + +class _Visitor extends SimpleAstVisitor { + _Visitor({required this.rule}); + final AnalysisRule rule; + + @override + void visitAssignmentExpression(AssignmentExpression node) { + // Check for badCertificateCallback assignment + final leftSide = node.leftHandSide; + String? propertyName; + + if (leftSide is PropertyAccess) { + propertyName = leftSide.propertyName.name; + } else if (leftSide is PrefixedIdentifier) { + propertyName = leftSide.identifier.name; + } + + if (propertyName != 'badCertificateCallback') { + return; + } + + // Check if the right side is a function that returns true + final rightSide = node.rightHandSide; + if (_returnsTrueUnconditionally(rightSide)) { + rule.reportAtNode(node); + } + } + + bool _returnsTrueUnconditionally(Expression expr) { + if (expr is FunctionExpression) { + final body = expr.body; + if (body is ExpressionFunctionBody) { + final expression = body.expression; + if (expression is BooleanLiteral && expression.value) { + return true; + } + } + } + return false; + } +} diff --git a/lib/src/analyzers/code/rules/rules.dart b/lib/src/analyzers/code/rules/rules.dart index 8a88005..551c660 100644 --- a/lib/src/analyzers/code/rules/rules.dart +++ b/lib/src/analyzers/code/rules/rules.dart @@ -1,14 +1,31 @@ import 'package:analyzer/analysis_rule/analysis_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/auth/avoid_empty_catch.dart'; import 'package:dart_shield/src/analyzers/code/rules/cryptography/avoid_weak_hashing.dart'; import 'package:dart_shield/src/analyzers/code/rules/cryptography/prefer_secure_random.dart'; +import 'package:dart_shield/src/analyzers/code/rules/injection/avoid_dynamic_sql_queries.dart'; +import 'package:dart_shield/src/analyzers/code/rules/logging/avoid_logging_sensitive_data.dart'; +import 'package:dart_shield/src/analyzers/code/rules/network/avoid_certificate_pinning_bypass.dart'; import 'package:dart_shield/src/analyzers/code/rules/flutter/avoid_insecure_webview_settings.dart'; import 'package:dart_shield/src/analyzers/code/rules/flutter/avoid_unvalidated_deep_link.dart'; import 'package:dart_shield/src/analyzers/code/rules/flutter/avoid_webview_javascript_bridge.dart'; import 'package:dart_shield/src/analyzers/code/rules/network/avoid_harcoded_urls.dart'; import 'package:dart_shield/src/analyzers/code/rules/network/prefer_https_over_http.dart'; import 'package:dart_shield/src/analyzers/code/rules/secrets/avoid_hardcoded_secrets.dart'; +import 'package:dart_shield/src/analyzers/code/rules/storage/avoid_insecure_file_storage.dart'; +import 'package:dart_shield/src/analyzers/code/rules/storage/avoid_shared_preferences_for_secrets.dart'; final List rules = [ + // Auth + AvoidEmptyCatch(), + // Cryptography + AvoidWeakHashing(), + PreferSecureRandom(), + // Injection + AvoidDynamicSqlQueries(), + // Logging + AvoidLoggingSensitiveData(), + // Network + AvoidCertificatePinningBypass(), // Cryptography AvoidWeakHashing(), PreferSecureRandom(), @@ -21,4 +38,7 @@ final List rules = [ PreferHttpsOverHttp(), // Secrets AvoidHardcodedSecrets(), + // Storage + AvoidInsecureFileStorage(), + AvoidSharedPreferencesForSecrets(), ]; diff --git a/lib/src/analyzers/code/rules/storage/avoid_insecure_file_storage.dart b/lib/src/analyzers/code/rules/storage/avoid_insecure_file_storage.dart new file mode 100644 index 0000000..043b005 --- /dev/null +++ b/lib/src/analyzers/code/rules/storage/avoid_insecure_file_storage.dart @@ -0,0 +1,74 @@ +import 'package:analyzer/analysis_rule/analysis_rule.dart'; +import 'package:analyzer/analysis_rule/rule_context.dart'; +import 'package:analyzer/analysis_rule/rule_visitor_registry.dart'; +import 'package:analyzer/dart/ast/ast.dart'; +import 'package:analyzer/dart/ast/visitor.dart'; +import 'package:analyzer/error/error.dart'; + +/// Detects writing sensitive data to files with sensitive names. +/// +/// CWE-922: Insecure Storage of Sensitive Information +class AvoidInsecureFileStorage extends AnalysisRule { + AvoidInsecureFileStorage() + : super( + name: 'avoid_insecure_file_storage', + description: + 'Avoid storing sensitive data in files with names that ' + 'suggest sensitive content.', + ); + + static const LintCode code = LintCode( + 'avoid_insecure_file_storage', + 'Avoid writing sensitive data to files without encryption.', + correctionMessage: + 'Encrypt sensitive data before writing to files, or use ' + 'a secure storage solution.', + ); + + @override + DiagnosticCode get diagnosticCode => code; + + @override + void registerNodeProcessors( + RuleVisitorRegistry registry, + RuleContext context, + ) { + final visitor = _Visitor(rule: this); + registry.addInstanceCreationExpression(this, visitor); + } +} + +class _Visitor extends SimpleAstVisitor { + _Visitor({required this.rule}); + final AnalysisRule rule; + + static const _sensitiveFilePatterns = [ + 'password', + 'passwd', + 'secret', + 'credential', + 'token', + 'key', + 'private', + 'auth', + ]; + + @override + void visitInstanceCreationExpression(InstanceCreationExpression node) { + // Check if this is a File constructor + final constructorName = node.constructorName.type.element?.name; + if (constructorName != 'File') return; + + // Check the file path argument for sensitive patterns + final args = node.argumentList.arguments; + if (args.isEmpty) return; + + final firstArg = args.first; + if (firstArg is SimpleStringLiteral) { + final filePath = firstArg.value.toLowerCase(); + if (_sensitiveFilePatterns.any((p) => filePath.contains(p))) { + rule.reportAtNode(node); + } + } + } +} diff --git a/lib/src/analyzers/code/rules/storage/avoid_shared_preferences_for_secrets.dart b/lib/src/analyzers/code/rules/storage/avoid_shared_preferences_for_secrets.dart new file mode 100644 index 0000000..f7eec25 --- /dev/null +++ b/lib/src/analyzers/code/rules/storage/avoid_shared_preferences_for_secrets.dart @@ -0,0 +1,90 @@ +import 'package:analyzer/analysis_rule/analysis_rule.dart'; +import 'package:analyzer/analysis_rule/rule_context.dart'; +import 'package:analyzer/analysis_rule/rule_visitor_registry.dart'; +import 'package:analyzer/dart/ast/ast.dart'; +import 'package:analyzer/dart/ast/visitor.dart'; +import 'package:analyzer/error/error.dart'; + +/// Detects storing sensitive data in SharedPreferences. +/// +/// CWE-312: Cleartext Storage of Sensitive Information +class AvoidSharedPreferencesForSecrets extends AnalysisRule { + AvoidSharedPreferencesForSecrets() + : super( + name: 'avoid_shared_preferences_for_secrets', + description: + 'Avoid storing sensitive data in SharedPreferences as it ' + 'is not encrypted.', + ); + + static const LintCode code = LintCode( + 'avoid_shared_preferences_for_secrets', + 'Avoid storing sensitive data in SharedPreferences (unencrypted).', + correctionMessage: + 'Use flutter_secure_storage or similar encrypted ' + 'storage for sensitive data.', + ); + + @override + DiagnosticCode get diagnosticCode => code; + + @override + void registerNodeProcessors( + RuleVisitorRegistry registry, + RuleContext context, + ) { + final visitor = _Visitor(rule: this); + registry.addMethodInvocation(this, visitor); + } +} + +class _Visitor extends SimpleAstVisitor { + _Visitor({required this.rule}); + final AnalysisRule rule; + + static const _sensitiveKeyPatterns = [ + 'password', + 'passwd', + 'token', + 'secret', + 'apikey', + 'api_key', + 'credential', + 'privatekey', + 'private_key', + 'auth', + 'accesstoken', + 'access_token', + ]; + + @override + void visitMethodInvocation(MethodInvocation node) { + final methodName = node.methodName.name; + + // Only check setString, setInt, etc. (write operations) + if (!methodName.startsWith('set')) { + return; + } + + // Check if this is on SharedPreferences type + final target = node.target; + if (target == null) return; + + final targetType = target.staticType?.toString() ?? ''; + if (!targetType.contains('SharedPreferences')) { + return; + } + + // Check the first argument (key) for sensitive patterns + final args = node.argumentList.arguments; + if (args.isEmpty) return; + + final firstArg = args.first; + if (firstArg is SimpleStringLiteral) { + final keyValue = firstArg.value.toLowerCase(); + if (_sensitiveKeyPatterns.any((p) => keyValue.contains(p))) { + rule.reportAtNode(node); + } + } + } +} diff --git a/test/src/analyzers/code/rules/auth/avoid_empty_catch_test.dart b/test/src/analyzers/code/rules/auth/avoid_empty_catch_test.dart new file mode 100644 index 0000000..4bf45f2 --- /dev/null +++ b/test/src/analyzers/code/rules/auth/avoid_empty_catch_test.dart @@ -0,0 +1,303 @@ +// ignore_for_file: non_constant_identifier_names + +import 'package:analyzer/src/lint/registry.dart'; +import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/auth/avoid_empty_catch.dart'; +import 'package:test_reflective_loader/test_reflective_loader.dart'; + +void main() { + defineReflectiveSuite(() { + defineReflectiveTests(AvoidEmptyCatchTest); + }); +} + +@reflectiveTest +class AvoidEmptyCatchTest extends AnalysisRuleTest { + @override + String get analysisRule => 'avoid_empty_catch'; + + @override + void setUp() { + Registry.ruleRegistry.registerLintRule(AvoidEmptyCatch()); + super.setUp(); + } + + // ==================== Empty catch blocks ==================== + + Future test_emptyCatchBlock_reports() async { + await assertDiagnostics( + ''' +void f() { + try { + throw Exception(); + } catch (e) { + } +} +''', + [lint(46, 15)], + ); + } + + Future test_emptyCatchBlockOnSpecificType_reports() async { + await assertDiagnostics( + ''' +void f() { + try { + throw FormatException(); + } on FormatException { + } +} +''', + [lint(52, 24)], + ); + } + + Future test_multipleCatchesOneEmpty_reports() async { + await assertDiagnostics( + ''' +void f() { + try { + throw Exception(); + } on FormatException catch (e) { + print(e); + } catch (e) { + } +} +''', + [lint(95, 15)], + ); + } + + // ==================== Catch with only empty statement ==================== + + Future test_catchWithOnlyEmptyStatement_reports() async { + await assertDiagnostics( + ''' +void f() { + try { + throw Exception(); + } catch (e) { + ; + } +} +''', + [lint(46, 21)], + ); + } + + // ==================== Catch with only identifier (no effect) ==================== + + Future test_catchWithOnlyIdentifier_reports() async { + await assertDiagnostics( + ''' +void f() { + try { + throw Exception(); + } catch (e) { + e; + } +} +''', + [lint(46, 22)], + ); + } + + // ==================== Valid catch blocks (no report) ==================== + + Future test_catchWithRethrow_noReport() async { + await assertNoDiagnostics(''' +void f() { + try { + throw Exception(); + } catch (e) { + rethrow; + } +} +'''); + } + + Future test_catchWithThrow_noReport() async { + await assertNoDiagnostics(r''' +void f() { + try { + throw Exception(); + } catch (e) { + throw Exception('Wrapped: $e'); + } +} +'''); + } + + Future test_catchWithPrint_noReport() async { + await assertNoDiagnostics(''' +void f() { + try { + throw Exception(); + } catch (e) { + print(e); + } +} +'''); + } + + Future test_catchWithMethodCall_noReport() async { + await assertNoDiagnostics(''' +void log(Object e) {} +void f() { + try { + throw Exception(); + } catch (e) { + log(e); + } +} +'''); + } + + Future test_catchWithReturn_noReport() async { + await assertNoDiagnostics(''' +int f() { + try { + int.parse('abc'); + } catch (e) { + return -1; + } + return 0; +} +'''); + } + + Future test_catchWithAssignment_noReport() async { + await assertNoDiagnostics(''' +void f() { + Object? lastError; + try { + throw Exception(); + } catch (e) { + lastError = e; + } + print(lastError); +} +'''); + } + + Future test_catchWithVariableDeclaration_noReport() async { + await assertNoDiagnostics(''' +void f() { + try { + throw Exception(); + } catch (e) { + final message = e.toString(); + print(message); + } +} +'''); + } + + Future test_catchWithIfStatement_noReport() async { + await assertNoDiagnostics(''' +void f() { + try { + throw Exception(); + } catch (e) { + if (e is FormatException) { + print('Format error'); + } + } +} +'''); + } + + Future test_catchWithBlock_noReport() async { + await assertNoDiagnostics(''' +void f() { + try { + throw Exception(); + } catch (e) { + { + print(e); + } + } +} +'''); + } + + Future test_catchWithFunctionExpressionInvocation_noReport() async { + await assertNoDiagnostics(''' +void f() { + final handler = (Object e) => print(e); + try { + throw Exception(); + } catch (e) { + handler(e); + } +} +'''); + } + + // ==================== Nested try-catch ==================== + + Future test_nestedTryCatch_innerEmpty_reports() async { + await assertDiagnostics( + ''' +void f() { + try { + try { + throw Exception(); + } catch (e) { + } + } catch (e) { + print(e); + } +} +''', + [lint(60, 17)], + ); + } + + Future test_nestedTryCatch_outerEmpty_reports() async { + await assertDiagnostics( + ''' +void f() { + try { + try { + throw Exception(); + } catch (e) { + print(e); + } + } catch (e) { + } +} +''', + [lint(98, 15)], + ); + } + + // ==================== Async/await context ==================== + + Future test_asyncFunctionEmptyCatch_reports() async { + await assertDiagnostics( + ''' +Future f() async { + try { + await Future.error('error'); + } catch (e) { + } +} +''', + [lint(70, 15)], + ); + } + + Future test_asyncFunctionCatchWithAwait_noReport() async { + await assertNoDiagnostics(''' +Future logError(Object e) async {} +Future f() async { + try { + await Future.error('error'); + } catch (e) { + await logError(e); + } +} +'''); + } +} diff --git a/test/src/analyzers/code/rules/injection/avoid_dynamic_sql_queries_test.dart b/test/src/analyzers/code/rules/injection/avoid_dynamic_sql_queries_test.dart new file mode 100644 index 0000000..2728977 --- /dev/null +++ b/test/src/analyzers/code/rules/injection/avoid_dynamic_sql_queries_test.dart @@ -0,0 +1,205 @@ +// ignore_for_file: non_constant_identifier_names + +import 'package:analyzer/src/lint/registry.dart'; +import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/injection/avoid_dynamic_sql_queries.dart'; +import 'package:test_reflective_loader/test_reflective_loader.dart'; + +void main() { + defineReflectiveSuite(() { + defineReflectiveTests(AvoidDynamicSqlQueriesTest); + }); +} + +@reflectiveTest +class AvoidDynamicSqlQueriesTest extends AnalysisRuleTest { + @override + String get analysisRule => 'avoid_dynamic_sql_queries'; + + @override + void setUp() { + Registry.ruleRegistry.registerLintRule(AvoidDynamicSqlQueries()); + super.setUp(); + } + + // ==================== SELECT queries with interpolation ==================== + + Future test_selectWithInterpolation_reports() async { + await assertDiagnostics( + r''' +void f(String userId) { + final query = 'SELECT * FROM users WHERE id = $userId'; +} +''', + [lint(40, 40)], + ); + } + + Future test_selectWithExpressionInterpolation_reports() async { + await assertDiagnostics( + r''' +void f(int id) { + final query = 'SELECT * FROM users WHERE id = ${id.toString()}'; +} +''', + [lint(33, 49)], + ); + } + + Future test_selectWithMultipleInterpolations_reports() async { + await assertDiagnostics( + r''' +void f(String table, String column, String value) { + final query = 'SELECT * FROM $table WHERE $column = $value'; +} +''', + [lint(68, 45)], + ); + } + + // ==================== INSERT queries with interpolation ==================== + + Future test_insertWithInterpolation_reports() async { + await assertDiagnostics( + r''' +void f(String name, String email) { + final query = 'INSERT INTO users (name, email) VALUES ($name, $email)'; +} +''', + [lint(52, 56)], + ); + } + + // ==================== UPDATE queries with interpolation ==================== + + Future test_updateWithInterpolation_reports() async { + await assertDiagnostics( + r''' +void f(String newName, int id) { + final query = 'UPDATE users SET name = $newName WHERE id = $id'; +} +''', + [lint(49, 49)], + ); + } + + // ==================== DELETE queries with interpolation ==================== + + Future test_deleteWithInterpolation_reports() async { + await assertDiagnostics( + r''' +void f(int userId) { + final query = 'DELETE FROM users WHERE id = $userId'; +} +''', + [lint(37, 38)], + ); + } + + // ==================== DROP queries with interpolation ==================== + + Future test_dropWithInterpolation_reports() async { + await assertDiagnostics( + r''' +void f(String tableName) { + final query = 'DROP TABLE $tableName'; +} +''', + [lint(43, 23)], + ); + } + + // ==================== Case insensitivity ==================== + + Future test_lowercaseSqlKeyword_reports() async { + await assertDiagnostics( + r''' +void f(String userId) { + final query = 'select * from users where id = $userId'; +} +''', + [lint(40, 40)], + ); + } + + // ==================== Static SQL (no interpolation) - no report ==================== + + Future test_staticSelectQuery_noReport() async { + await assertNoDiagnostics(r''' +void f() { + final query = 'SELECT * FROM users WHERE id = 1'; +} +'''); + } + + Future test_parameterizedQuery_noReport() async { + await assertNoDiagnostics(r''' +void f() { + final query = 'SELECT * FROM users WHERE id = ?'; +} +'''); + } + + Future test_namedParameterQuery_noReport() async { + await assertNoDiagnostics(r''' +void f() { + final query = 'SELECT * FROM users WHERE id = :userId'; +} +'''); + } + + // ==================== Non-SQL strings with interpolation - no report ==================== + + Future test_regularStringWithInterpolation_noReport() async { + await assertNoDiagnostics(r''' +void f(String name) { + final greeting = 'Hello, $name!'; +} +'''); + } + + Future test_urlWithInterpolation_noReport() async { + await assertNoDiagnostics(r''' +void f(String userId) { + final url = 'https://api.example.com/users/$userId'; +} +'''); + } + + Future test_jsonWithInterpolation_noReport() async { + await assertNoDiagnostics(r''' +void f(String name) { + final json = '{"name": "$name"}'; +} +'''); + } + + // ==================== SQL in method arguments ==================== + + Future test_sqlInMethodArgument_reports() async { + await assertDiagnostics( + r''' +void execute(String query) {} +void f(String userId) { + execute('SELECT * FROM users WHERE id = $userId'); +} +''', + [lint(64, 40)], + ); + } + + // ==================== SQL in list ==================== + + Future test_sqlInList_reports() async { + await assertDiagnostics( + r''' +void f(String userId) { + final queries = [ + 'SELECT * FROM users WHERE id = $userId', + ]; +} +''', + [lint(48, 40)], + ); + } +} diff --git a/test/src/analyzers/code/rules/logging/avoid_logging_sensitive_data_test.dart b/test/src/analyzers/code/rules/logging/avoid_logging_sensitive_data_test.dart new file mode 100644 index 0000000..0d505e4 --- /dev/null +++ b/test/src/analyzers/code/rules/logging/avoid_logging_sensitive_data_test.dart @@ -0,0 +1,249 @@ +// ignore_for_file: non_constant_identifier_names + +import 'package:analyzer/src/lint/registry.dart'; +import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/logging/avoid_logging_sensitive_data.dart'; +import 'package:test_reflective_loader/test_reflective_loader.dart'; + +void main() { + defineReflectiveSuite(() { + defineReflectiveTests(AvoidLoggingSensitiveDataTest); + }); +} + +@reflectiveTest +class AvoidLoggingSensitiveDataTest extends AnalysisRuleTest { + @override + String get analysisRule => 'avoid_logging_sensitive_data'; + + @override + void setUp() { + Registry.ruleRegistry.registerLintRule(AvoidLoggingSensitiveData()); + super.setUp(); + } + + // ==================== print() with sensitive variables ==================== + + Future test_printPassword_reports() async { + await assertDiagnostics( + ''' +void f(String password) { + print(password); +} +''', + [lint(28, 15)], + ); + } + + Future test_printToken_reports() async { + await assertDiagnostics( + ''' +void f(String token) { + print(token); +} +''', + [lint(25, 12)], + ); + } + + Future test_printSecret_reports() async { + await assertDiagnostics( + ''' +void f(String secret) { + print(secret); +} +''', + [lint(26, 13)], + ); + } + + Future test_printApiKey_reports() async { + await assertDiagnostics( + ''' +void f(String apiKey) { + print(apiKey); +} +''', + [lint(26, 13)], + ); + } + + Future test_printCredential_reports() async { + await assertDiagnostics( + ''' +void f(String credential) { + print(credential); +} +''', + [lint(30, 17)], + ); + } + + Future test_printPrivateKey_reports() async { + await assertDiagnostics( + ''' +void f(String privateKey) { + print(privateKey); +} +''', + [lint(30, 17)], + ); + } + + Future test_printAccessToken_reports() async { + await assertDiagnostics( + ''' +void f(String accessToken) { + print(accessToken); +} +''', + [lint(31, 18)], + ); + } + + Future test_printAuthToken_reports() async { + await assertDiagnostics( + ''' +void f(String authToken) { + print(authToken); +} +''', + [lint(29, 16)], + ); + } + + // ==================== Logger methods with sensitive variables ==================== + + Future test_loggerInfoPassword_reports() async { + await assertDiagnostics( + ''' +class Logger { + void info(String message) {} +} +void f(Logger logger, String password) { + logger.info(password); +} +''', + [lint(91, 21)], + ); + } + + Future test_loggerDebugToken_reports() async { + await assertDiagnostics( + ''' +class Logger { + void debug(String message) {} +} +void f(Logger logger, String token) { + logger.debug(token); +} +''', + [lint(89, 19)], + ); + } + + Future test_loggerWarningSecret_reports() async { + await assertDiagnostics( + ''' +class Logger { + void warning(String message) {} +} +void f(Logger logger, String secret) { + logger.warning(secret); +} +''', + [lint(92, 22)], + ); + } + + Future test_loggerErrorCredential_reports() async { + await assertDiagnostics( + ''' +class Logger { + void error(String message) {} +} +void f(Logger logger, String credential) { + logger.error(credential); +} +''', + [lint(94, 24)], + ); + } + + // ==================== Non-sensitive variables - no report ==================== + + Future test_printNormalString_noReport() async { + await assertNoDiagnostics(''' +void f(String message) { + print(message); +} +'''); + } + + Future test_printUsername_noReport() async { + await assertNoDiagnostics(''' +void f(String username) { + print(username); +} +'''); + } + + Future test_printEmail_noReport() async { + await assertNoDiagnostics(''' +void f(String email) { + print(email); +} +'''); + } + + Future test_printId_noReport() async { + await assertNoDiagnostics(''' +void f(String id) { + print(id); +} +'''); + } + + // ==================== String literals (not variable names) - no report ==================== + + Future test_printStringLiteralWithPassword_noReport() async { + await assertNoDiagnostics(''' +void f() { + print('Password is required'); +} +'''); + } + + // ==================== Non-logging methods - no report ==================== + + Future test_processPassword_noReport() async { + await assertNoDiagnostics(''' +void process(String data) {} +void f(String password) { + process(password); +} +'''); + } + + Future test_hashPassword_noReport() async { + await assertNoDiagnostics(''' +void hash(String data) {} +void f(String password) { + hash(password); +} +'''); + } + + // ==================== Case variations ==================== + + Future test_printUserPassword_reports() async { + await assertDiagnostics( + ''' +void f(String userPassword) { + print(userPassword); +} +''', + [lint(32, 19)], + ); + } +} diff --git a/test/src/analyzers/code/rules/network/avoid_certificate_pinning_bypass_test.dart b/test/src/analyzers/code/rules/network/avoid_certificate_pinning_bypass_test.dart new file mode 100644 index 0000000..0bb45d6 --- /dev/null +++ b/test/src/analyzers/code/rules/network/avoid_certificate_pinning_bypass_test.dart @@ -0,0 +1,140 @@ +// ignore_for_file: non_constant_identifier_names + +import 'package:analyzer/src/lint/registry.dart'; +import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/network/avoid_certificate_pinning_bypass.dart'; +import 'package:test_reflective_loader/test_reflective_loader.dart'; + +void main() { + defineReflectiveSuite(() { + defineReflectiveTests(AvoidCertificatePinningBypassTest); + }); +} + +@reflectiveTest +class AvoidCertificatePinningBypassTest extends AnalysisRuleTest { + @override + String get analysisRule => 'avoid_certificate_pinning_bypass'; + + @override + void setUp() { + Registry.ruleRegistry.registerLintRule(AvoidCertificatePinningBypass()); + + // Add stub for dart:io HttpClient + newPackage('io_stub').addFile('lib/io_stub.dart', ''' +class HttpClient { + bool Function(dynamic cert, String host, int port)? badCertificateCallback; +} +'''); + + super.setUp(); + } + + // ==================== badCertificateCallback returning true ==================== + + Future test_badCertificateCallbackReturnsTrue_reports() async { + await assertDiagnostics( + ''' +import 'package:io_stub/io_stub.dart'; +void f() { + final client = HttpClient(); + client.badCertificateCallback = (cert, host, port) => true; +} +''', + [lint(83, 58)], + ); + } + + Future test_badCertificateCallbackWithPropertyAccess_reports() async { + await assertDiagnostics( + ''' +import 'package:io_stub/io_stub.dart'; +void f(HttpClient client) { + client.badCertificateCallback = (cert, host, port) => true; +} +''', + [lint(69, 58)], + ); + } + + // ==================== badCertificateCallback NOT returning true unconditionally ==================== + + Future test_badCertificateCallbackReturnsFalse_noReport() async { + await assertNoDiagnostics(''' +import 'package:io_stub/io_stub.dart'; +void f() { + final client = HttpClient(); + client.badCertificateCallback = (cert, host, port) => false; +} +'''); + } + + Future test_badCertificateCallbackReturnsVariable_noReport() async { + await assertNoDiagnostics(''' +import 'package:io_stub/io_stub.dart'; +void f(bool allowInsecure) { + final client = HttpClient(); + client.badCertificateCallback = (cert, host, port) => allowInsecure; +} +'''); + } + + Future test_badCertificateCallbackReturnsExpression_noReport() async { + await assertNoDiagnostics(''' +import 'package:io_stub/io_stub.dart'; +void f() { + final client = HttpClient(); + client.badCertificateCallback = (cert, host, port) => host == 'localhost'; +} +'''); + } + + Future test_badCertificateCallbackWithBlockBody_noReport() async { + // Block body functions are not detected (only expression body with literal true) + await assertNoDiagnostics(''' +import 'package:io_stub/io_stub.dart'; +void f() { + final client = HttpClient(); + client.badCertificateCallback = (cert, host, port) { + return true; + }; +} +'''); + } + + Future test_badCertificateCallbackNull_noReport() async { + await assertNoDiagnostics(''' +import 'package:io_stub/io_stub.dart'; +void f() { + final client = HttpClient(); + client.badCertificateCallback = null; +} +'''); + } + + // ==================== Other property assignments - no report ==================== + + Future test_otherPropertyAssignment_noReport() async { + await assertNoDiagnostics(''' +class Config { + bool Function()? callback; +} +void f() { + final config = Config(); + config.callback = () => true; +} +'''); + } + + Future test_differentCallbackName_noReport() async { + await assertNoDiagnostics(''' +class Client { + bool Function()? onError; +} +void f() { + final client = Client(); + client.onError = () => true; +} +'''); + } +} diff --git a/test/src/analyzers/code/rules/storage/avoid_insecure_file_storage_test.dart b/test/src/analyzers/code/rules/storage/avoid_insecure_file_storage_test.dart new file mode 100644 index 0000000..3c952b7 --- /dev/null +++ b/test/src/analyzers/code/rules/storage/avoid_insecure_file_storage_test.dart @@ -0,0 +1,197 @@ +// ignore_for_file: non_constant_identifier_names + +import 'package:analyzer/src/lint/registry.dart'; +import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/storage/avoid_insecure_file_storage.dart'; +import 'package:test_reflective_loader/test_reflective_loader.dart'; + +void main() { + defineReflectiveSuite(() { + defineReflectiveTests(AvoidInsecureFileStorageTest); + }); +} + +@reflectiveTest +class AvoidInsecureFileStorageTest extends AnalysisRuleTest { + @override + String get analysisRule => 'avoid_insecure_file_storage'; + + @override + void setUp() { + Registry.ruleRegistry.registerLintRule(AvoidInsecureFileStorage()); + + // Add stub for dart:io File + newPackage('io_stub').addFile('lib/io_stub.dart', ''' +class File { + File(String path); + Future writeAsString(String contents) async => this; + void writeAsStringSync(String contents) {} +} +'''); + + super.setUp(); + } + + // ==================== Files with "password" in path ==================== + + Future test_fileWithPasswordInPath_reports() async { + await assertDiagnostics( + ''' +import 'package:io_stub/io_stub.dart'; +void f() { + final file = File('passwords.txt'); +} +''', + [lint(65, 21)], + ); + } + + Future test_fileWithUserPassword_reports() async { + await assertDiagnostics( + ''' +import 'package:io_stub/io_stub.dart'; +void f() { + final file = File('user_password.json'); +} +''', + [lint(65, 26)], + ); + } + + // ==================== Files with "secret" in path ==================== + + Future test_fileWithSecretInPath_reports() async { + await assertDiagnostics( + ''' +import 'package:io_stub/io_stub.dart'; +void f() { + final file = File('secrets.json'); +} +''', + [lint(65, 20)], + ); + } + + // ==================== Files with "credential" in path ==================== + + Future test_fileWithCredentialInPath_reports() async { + await assertDiagnostics( + ''' +import 'package:io_stub/io_stub.dart'; +void f() { + final file = File('credentials.json'); +} +''', + [lint(65, 24)], + ); + } + + // ==================== Files with "token" in path ==================== + + Future test_fileWithTokenInPath_reports() async { + await assertDiagnostics( + ''' +import 'package:io_stub/io_stub.dart'; +void f() { + final file = File('tokens.dat'); +} +''', + [lint(65, 18)], + ); + } + + // ==================== Files with "key" in path ==================== + + Future test_fileWithKeyInPath_reports() async { + await assertDiagnostics( + ''' +import 'package:io_stub/io_stub.dart'; +void f() { + final file = File('api_key.txt'); +} +''', + [lint(65, 19)], + ); + } + + // ==================== Files with "private" in path ==================== + + Future test_fileWithPrivateInPath_reports() async { + await assertDiagnostics( + ''' +import 'package:io_stub/io_stub.dart'; +void f() { + final file = File('private_data.json'); +} +''', + [lint(65, 25)], + ); + } + + // ==================== Files with "auth" in path ==================== + + Future test_fileWithAuthInPath_reports() async { + await assertDiagnostics( + ''' +import 'package:io_stub/io_stub.dart'; +void f() { + final file = File('auth.json'); +} +''', + [lint(65, 17)], + ); + } + + // ==================== Non-sensitive file paths - no report ==================== + + Future test_fileWithNormalName_noReport() async { + await assertNoDiagnostics(''' +import 'package:io_stub/io_stub.dart'; +void f() { + final file = File('config.json'); +} +'''); + } + + Future test_fileWithDataName_noReport() async { + await assertNoDiagnostics(''' +import 'package:io_stub/io_stub.dart'; +void f() { + final file = File('/data/users.txt'); +} +'''); + } + + Future test_fileWithLogName_noReport() async { + await assertNoDiagnostics(''' +import 'package:io_stub/io_stub.dart'; +void f() { + final file = File('app.log'); +} +'''); + } + + // ==================== Variable paths (not string literals) - no report ==================== + + Future test_fileWithVariablePath_noReport() async { + await assertNoDiagnostics(''' +import 'package:io_stub/io_stub.dart'; +void f(String path) { + final file = File(path); +} +'''); + } + + // ==================== Non-File classes - no report ==================== + + Future test_nonFileClassWithSensitivePath_noReport() async { + await assertNoDiagnostics(''' +class Config { + Config(String path); +} +void f() { + final config = Config('passwords.txt'); +} +'''); + } +} diff --git a/test/src/analyzers/code/rules/storage/avoid_shared_preferences_for_secrets_test.dart b/test/src/analyzers/code/rules/storage/avoid_shared_preferences_for_secrets_test.dart new file mode 100644 index 0000000..c0444ff --- /dev/null +++ b/test/src/analyzers/code/rules/storage/avoid_shared_preferences_for_secrets_test.dart @@ -0,0 +1,204 @@ +// ignore_for_file: non_constant_identifier_names + +import 'package:analyzer/src/lint/registry.dart'; +import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; +import 'package:dart_shield/src/analyzers/code/rules/storage/avoid_shared_preferences_for_secrets.dart'; +import 'package:test_reflective_loader/test_reflective_loader.dart'; + +void main() { + defineReflectiveSuite(() { + defineReflectiveTests(AvoidSharedPreferencesForSecretsTest); + }); +} + +@reflectiveTest +class AvoidSharedPreferencesForSecretsTest extends AnalysisRuleTest { + @override + String get analysisRule => 'avoid_shared_preferences_for_secrets'; + + @override + void setUp() { + Registry.ruleRegistry.registerLintRule(AvoidSharedPreferencesForSecrets()); + + // Add stub for shared_preferences package + newPackage('shared_preferences').addFile('lib/shared_preferences.dart', ''' +class SharedPreferences { + static Future getInstance() async { + return SharedPreferences._(); + } + SharedPreferences._(); + + Future setString(String key, String value) async => true; + Future setInt(String key, int value) async => true; + Future setBool(String key, bool value) async => true; + + String? getString(String key) => null; + int? getInt(String key) => null; +} +'''); + + super.setUp(); + } + + // ==================== setString with sensitive keys ==================== + + Future test_setStringWithPasswordKey_reports() async { + await assertDiagnostics( + ''' +import 'package:shared_preferences/shared_preferences.dart'; +Future f() async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('password', 'secret123'); +} +''', + [lint(149, 40)], + ); + } + + Future test_setStringWithTokenKey_reports() async { + await assertDiagnostics( + ''' +import 'package:shared_preferences/shared_preferences.dart'; +Future f() async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('token', 'abc123'); +} +''', + [lint(149, 34)], + ); + } + + Future test_setStringWithSecretKey_reports() async { + await assertDiagnostics( + ''' +import 'package:shared_preferences/shared_preferences.dart'; +Future f() async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('secret', 'mySecret'); +} +''', + [lint(149, 37)], + ); + } + + Future test_setStringWithApiKeyKey_reports() async { + await assertDiagnostics( + ''' +import 'package:shared_preferences/shared_preferences.dart'; +Future f() async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('apikey', 'key123'); +} +''', + [lint(149, 35)], + ); + } + + Future test_setStringWithCredentialKey_reports() async { + await assertDiagnostics( + ''' +import 'package:shared_preferences/shared_preferences.dart'; +Future f() async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('credential', 'cred123'); +} +''', + [lint(149, 40)], + ); + } + + Future test_setStringWithAuthKey_reports() async { + await assertDiagnostics( + ''' +import 'package:shared_preferences/shared_preferences.dart'; +Future f() async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('auth', 'auth123'); +} +''', + [lint(149, 34)], + ); + } + + Future test_setStringWithAccessTokenKey_reports() async { + await assertDiagnostics( + ''' +import 'package:shared_preferences/shared_preferences.dart'; +Future f() async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('accesstoken', 'token123'); +} +''', + [lint(149, 42)], + ); + } + + // ==================== Non-sensitive keys - no report ==================== + + Future test_setStringWithUsernameKey_noReport() async { + await assertNoDiagnostics(''' +import 'package:shared_preferences/shared_preferences.dart'; +Future f() async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('username', 'john'); +} +'''); + } + + Future test_setStringWithThemeKey_noReport() async { + await assertNoDiagnostics(''' +import 'package:shared_preferences/shared_preferences.dart'; +Future f() async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('theme', 'dark'); +} +'''); + } + + Future test_setIntWithCounterKey_noReport() async { + await assertNoDiagnostics(''' +import 'package:shared_preferences/shared_preferences.dart'; +Future f() async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setInt('counter', 42); +} +'''); + } + + // ==================== Get methods - no report ==================== + + Future test_getStringWithPasswordKey_noReport() async { + await assertNoDiagnostics(''' +import 'package:shared_preferences/shared_preferences.dart'; +Future f() async { + final prefs = await SharedPreferences.getInstance(); + final password = prefs.getString('password'); +} +'''); + } + + // ==================== Non-SharedPreferences classes - no report ==================== + + Future test_otherClassSetStringWithPasswordKey_noReport() async { + await assertNoDiagnostics(''' +class MyPrefs { + void setString(String key, String value) {} +} +void f(MyPrefs prefs) { + prefs.setString('password', 'secret123'); +} +'''); + } + + // ==================== Variable keys (not string literals) - no report ==================== + + Future test_setStringWithVariableKey_noReport() async { + await assertNoDiagnostics(''' +import 'package:shared_preferences/shared_preferences.dart'; +Future f(String key) async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString(key, 'value'); +} +'''); + } +} From ff6cf21597d1cb9c7c01c7976467a54ada87cbc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20Novotn=C3=BD?= <62177414+yardexx@users.noreply.github.com> Date: Mon, 2 Feb 2026 20:09:14 +0100 Subject: [PATCH 7/9] style: formatting --- .../avoid_insecure_webview_settings.dart | 3 +- .../injection/avoid_dynamic_sql_queries.dart | 5 +- lib/src/baseline/baseline_manager.dart | 4 +- lib/src/cli/commands/analyze_command.dart | 3 +- lib/src/cli/commands/baseline_command.dart | 3 +- lib/src/reporters/sarif/sarif_builder.dart | 8 +- lib/src/reporters/sarif/sarif_document.dart | 78 +++++++++---------- lib/src/reporters/sarif/sarif_reporter.dart | 3 +- lib/src/utils/pubspec.dart | 2 +- .../src/models/sarif_physical_location.dart | 5 +- packages/sarif/lib/src/models/sarif_run.dart | 5 +- test/src/baseline/baseline_manager_test.dart | 6 +- .../src/configuration/shield_config_test.dart | 10 +-- .../reporters/sarif/sarif_reporter_test.dart | 5 +- 14 files changed, 66 insertions(+), 74 deletions(-) diff --git a/lib/src/analyzers/code/rules/flutter/avoid_insecure_webview_settings.dart b/lib/src/analyzers/code/rules/flutter/avoid_insecure_webview_settings.dart index 5dae93f..08c426b 100644 --- a/lib/src/analyzers/code/rules/flutter/avoid_insecure_webview_settings.dart +++ b/lib/src/analyzers/code/rules/flutter/avoid_insecure_webview_settings.dart @@ -13,8 +13,7 @@ class AvoidInsecureWebviewSettings extends AnalysisRule { AvoidInsecureWebviewSettings() : super( name: 'avoid_insecure_webview_settings', - description: - 'Avoid enabling unrestricted JavaScript mode in WebViews.', + description: 'Avoid enabling unrestricted JavaScript mode in WebViews.', ); static const LintCode code = LintCode( diff --git a/lib/src/analyzers/code/rules/injection/avoid_dynamic_sql_queries.dart b/lib/src/analyzers/code/rules/injection/avoid_dynamic_sql_queries.dart index 0a0b19d..116e1fb 100644 --- a/lib/src/analyzers/code/rules/injection/avoid_dynamic_sql_queries.dart +++ b/lib/src/analyzers/code/rules/injection/avoid_dynamic_sql_queries.dart @@ -72,8 +72,9 @@ class _Visitor extends SimpleAstVisitor { ); // Check if it has interpolation (not just a static SQL string) - final hasInterpolation = - node.elements.any((e) => e is InterpolationExpression); + final hasInterpolation = node.elements.any( + (e) => e is InterpolationExpression, + ); if (hasSqlKeyword && hasInterpolation) { rule.reportAtNode(node); diff --git a/lib/src/baseline/baseline_manager.dart b/lib/src/baseline/baseline_manager.dart index 59e232b..08635fb 100644 --- a/lib/src/baseline/baseline_manager.dart +++ b/lib/src/baseline/baseline_manager.dart @@ -71,7 +71,9 @@ class BaselineManager { } /// Filter out issues that are already in the baseline. - Future> filterBaselined(List issues) async { + Future> filterBaselined( + List issues, + ) async { final baseline = await loadBaseline(); final baselineFingerprints = baseline.map((e) => e.fingerprint).toSet(); diff --git a/lib/src/cli/commands/analyze_command.dart b/lib/src/cli/commands/analyze_command.dart index 4b48734..e305111 100644 --- a/lib/src/cli/commands/analyze_command.dart +++ b/lib/src/cli/commands/analyze_command.dart @@ -34,7 +34,8 @@ class AnalyzeCommand extends ShieldCommand { ..addOption( 'baseline', abbr: 'b', - help: 'Path to baseline file. Issues in baseline are not reported. ' + help: + 'Path to baseline file. Issues in baseline are not reported. ' 'Default location is $defaultBaselinePath', ); } diff --git a/lib/src/cli/commands/baseline_command.dart b/lib/src/cli/commands/baseline_command.dart index 1b4eff0..54f5dda 100644 --- a/lib/src/cli/commands/baseline_command.dart +++ b/lib/src/cli/commands/baseline_command.dart @@ -22,7 +22,8 @@ class BaselineCommand extends ShieldCommand { 'output', abbr: 'o', defaultsTo: defaultBaselinePath, - help: 'Output path for the baseline file. ' + help: + 'Output path for the baseline file. ' 'Defaults to $defaultBaselinePath', ) ..addFlag( diff --git a/lib/src/reporters/sarif/sarif_builder.dart b/lib/src/reporters/sarif/sarif_builder.dart index ddadb55..9ace3f0 100644 --- a/lib/src/reporters/sarif/sarif_builder.dart +++ b/lib/src/reporters/sarif/sarif_builder.dart @@ -12,10 +12,10 @@ class SarifBuilder { required String toolVersion, required String toolUri, }) : _tool = SarifTool( - name: toolName, - version: toolVersion, - informationUri: toolUri, - ); + name: toolName, + version: toolVersion, + informationUri: toolUri, + ); final SarifTool _tool; final List _results = []; diff --git a/lib/src/reporters/sarif/sarif_document.dart b/lib/src/reporters/sarif/sarif_document.dart index d6b049b..8cd41a5 100644 --- a/lib/src/reporters/sarif/sarif_document.dart +++ b/lib/src/reporters/sarif/sarif_document.dart @@ -6,10 +6,7 @@ library; /// A SARIF 2.1.0 document. class SarifDocument { - SarifDocument({ - required this.tool, - required this.results, - }); + SarifDocument({required this.tool, required this.results}); /// SARIF schema URL. static const String schema = @@ -26,15 +23,15 @@ class SarifDocument { /// Convert to JSON-serializable map. Map toJson() => { - r'$schema': schema, - 'version': version, - 'runs': [ - { - 'tool': tool.toJson(), - 'results': results.map((r) => r.toJson()).toList(), - }, - ], - }; + r'$schema': schema, + 'version': version, + 'runs': [ + { + 'tool': tool.toJson(), + 'results': results.map((r) => r.toJson()).toList(), + }, + ], + }; } /// Information about the tool that produced the SARIF results. @@ -60,13 +57,13 @@ class SarifTool { /// Convert to JSON-serializable map. Map toJson() => { - 'driver': { - 'name': name, - 'version': version, - 'informationUri': informationUri, - 'rules': rules.map((r) => r.toJson()).toList(), - }, - }; + 'driver': { + 'name': name, + 'version': version, + 'informationUri': informationUri, + 'rules': rules.map((r) => r.toJson()).toList(), + }, + }; } /// A rule defined by a SARIF tool. @@ -92,12 +89,11 @@ class SarifRule { /// Convert to JSON-serializable map. Map toJson() => { - 'id': id, - 'shortDescription': {'text': shortDescription}, - if (fullDescription != null) - 'fullDescription': {'text': fullDescription}, - if (helpUri != null) 'helpUri': helpUri, - }; + 'id': id, + 'shortDescription': {'text': shortDescription}, + if (fullDescription != null) 'fullDescription': {'text': fullDescription}, + if (helpUri != null) 'helpUri': helpUri, + }; } /// A single result (finding) in a SARIF document. @@ -123,11 +119,11 @@ class SarifResult { /// Convert to JSON-serializable map. Map toJson() => { - 'ruleId': ruleId, - 'level': level.name, - 'message': {'text': message}, - 'locations': [location.toJson()], - }; + 'ruleId': ruleId, + 'level': level.name, + 'message': {'text': message}, + 'locations': [location.toJson()], + }; } /// SARIF severity levels. @@ -172,14 +168,14 @@ class SarifLocation { /// Convert to JSON-serializable map. Map toJson() => { - 'physicalLocation': { - 'artifactLocation': {'uri': filePath}, - 'region': { - 'startLine': startLine, - 'startColumn': startColumn, - if (endLine != null) 'endLine': endLine, - if (endColumn != null) 'endColumn': endColumn, - }, - }, - }; + 'physicalLocation': { + 'artifactLocation': {'uri': filePath}, + 'region': { + 'startLine': startLine, + 'startColumn': startColumn, + if (endLine != null) 'endLine': endLine, + if (endColumn != null) 'endColumn': endColumn, + }, + }, + }; } diff --git a/lib/src/reporters/sarif/sarif_reporter.dart b/lib/src/reporters/sarif/sarif_reporter.dart index cc7d6ac..88a6a72 100644 --- a/lib/src/reporters/sarif/sarif_reporter.dart +++ b/lib/src/reporters/sarif/sarif_reporter.dart @@ -31,8 +31,7 @@ class SarifReporter implements Reporter { ); // Extract all issues from successful analyses - final issues = - results.whereType().expand((r) => r.issues); + final issues = results.whereType().expand((r) => r.issues); for (final issue in issues) { builder.addResult( diff --git a/lib/src/utils/pubspec.dart b/lib/src/utils/pubspec.dart index b21c5c8..ef2f096 100644 --- a/lib/src/utils/pubspec.dart +++ b/lib/src/utils/pubspec.dart @@ -6,4 +6,4 @@ class Pubspec { final version = pubspec.split('version: ')[1].split('\n')[0].trim(); return version; } -} \ No newline at end of file +} diff --git a/packages/sarif/lib/src/models/sarif_physical_location.dart b/packages/sarif/lib/src/models/sarif_physical_location.dart index f960313..f87c527 100644 --- a/packages/sarif/lib/src/models/sarif_physical_location.dart +++ b/packages/sarif/lib/src/models/sarif_physical_location.dart @@ -12,10 +12,7 @@ part 'sarif_physical_location.g.dart'; explicitToJson: true, ) class SarifPhysicalLocation { - SarifPhysicalLocation({ - required this.artifactLocation, - required this.region, - }); + SarifPhysicalLocation({required this.artifactLocation, required this.region}); /// The artifact location. final SarifArtifactLocation artifactLocation; diff --git a/packages/sarif/lib/src/models/sarif_run.dart b/packages/sarif/lib/src/models/sarif_run.dart index f638efc..5ffa84f 100644 --- a/packages/sarif/lib/src/models/sarif_run.dart +++ b/packages/sarif/lib/src/models/sarif_run.dart @@ -12,10 +12,7 @@ part 'sarif_run.g.dart'; explicitToJson: true, ) class SarifRun { - SarifRun({ - required this.tool, - required this.results, - }); + SarifRun({required this.tool, required this.results}); /// The tool that performed this run. final SarifTool tool; diff --git a/test/src/baseline/baseline_manager_test.dart b/test/src/baseline/baseline_manager_test.dart index a7ff3e3..9ee5e51 100644 --- a/test/src/baseline/baseline_manager_test.dart +++ b/test/src/baseline/baseline_manager_test.dart @@ -88,7 +88,11 @@ baseline: ruleId: 'prefer_https_over_http', severity: Severity.high, message: 'HTTP detected', - context: FileContext(filePath: 'lib/client.dart', line: 20, column: 3), + context: FileContext( + filePath: 'lib/client.dart', + line: 20, + column: 3, + ), ), ]; diff --git a/test/src/configuration/shield_config_test.dart b/test/src/configuration/shield_config_test.dart index 5ee47bb..c662e61 100644 --- a/test/src/configuration/shield_config_test.dart +++ b/test/src/configuration/shield_config_test.dart @@ -48,10 +48,7 @@ dart_shield: dart_shield: analyzers: [ '''); // Broken YAML - expect( - ShieldConfig.load, - throwsA(isA()), - ); + expect(ShieldConfig.load, throwsA(isA())); }); test('throws ConfigException on type mismatch', () async { @@ -59,10 +56,7 @@ dart_shield: dart_shield: analyzers: "invalid_string" '''); - expect( - ShieldConfig.load, - throwsA(isA()), - ); + expect(ShieldConfig.load, throwsA(isA())); }); }); } diff --git a/test/src/reporters/sarif/sarif_reporter_test.dart b/test/src/reporters/sarif/sarif_reporter_test.dart index 7e622cf..e69ca95 100644 --- a/test/src/reporters/sarif/sarif_reporter_test.dart +++ b/test/src/reporters/sarif/sarif_reporter_test.dart @@ -153,8 +153,9 @@ void main() { final output = reporter.generateSarif(results); final sarif = jsonDecode(output) as Map; - final location = sarif['runs'][0]['results'][0]['locations'][0] - as Map; + final location = + sarif['runs'][0]['results'][0]['locations'][0] + as Map; final physicalLocation = location['physicalLocation'] as Map; From b7a8ee4ede5d7a7b43d1ef5769c010a407b0f4e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20Novotn=C3=BD?= <62177414+yardexx@users.noreply.github.com> Date: Mon, 2 Feb 2026 20:13:56 +0100 Subject: [PATCH 8/9] fix: package dependency --- pubspec.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index 4c8bffc..cfcacfb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -34,8 +34,6 @@ dependencies: source_span: ^1.10.0 yaml: ^3.1.2 yaml_edit: ^2.2.2 - sarif: - path: packages/sarif dev_dependencies: analyzer_testing: ^0.1.0 From eae3ffaf1e98f75ab8c320a5e9e7c79493f8b022 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20Novotn=C3=BD?= <62177414+yardexx@users.noreply.github.com> Date: Mon, 2 Feb 2026 20:22:22 +0100 Subject: [PATCH 9/9] ci: update coverage token --- .github/workflows/dart.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml index 7fab192..89948f6 100644 --- a/.github/workflows/dart.yml +++ b/.github/workflows/dart.yml @@ -45,6 +45,7 @@ jobs: with: files: coverage/lcov.info fail_ci_if_error: false + token: ${{ secrets.CODECOV_TOKEN }} - name: ๐Ÿ“Š Run Pana run: dart pub global activate pana && dart pub global run pana

    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 Ut+#cP>==N+)78&qol`;+0Ke_4;s5{u diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index e69de29..0000000 diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index f5da6e9..0000000 --- a/docs/README.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -cover: .gitbook/assets/1.png -coverY: 0 ---- - -# Introduction - -dart\_shield is Dart-native static application security testing tool which scan your codebase and looks for potential security risks and breaches. - -It can detect security flaws such as: - -* Hardcoded endpoints and API keys -* Vulnerable cryptography (weak hashing algorithms, unsecure random) -* Unsecure HTTP connections - -## Motivation - -In modern development, security is often an afterthought, but even small vulnerabilities can lead to major risks. - -dart\_shield is designed to catch those issues before they become problems, ensuring your code is as strong as your features. Instead of pushing security aside or relying on manual checks or risking oversight, dart\_shield is another handy tool (just like linter or dcm) to your workflow, allowing you to focus on building without worrying about hidden vulnerabilities. - -Security shouldn't have to be a trade-off - you can build secure application efficiently, while focusing on delivery of your idea. - -## Core Values - -dart\_shield is built around a few key principles: - -### Simple - -dart\_shield leverages existing, familiar practices from the community, rather than inventing new solutions. By adopting proven architectures and approaches used within Dart community, it stays in line with what developers already know ([Principle of Familiarity](https://en.wikipedia.org/wiki/Mere-exposure_effect)). - -This makes the tool easy to adopt and integrate into any project, making it both developer-friendly and approachable. - -### Open-source - -Security should be accessible to everyone. Whether your project is large or small, security should not be limited by project size or cost. - -Thatโ€™s why dart\_shield is free and open-source. - -Being open-source ensures transparencyโ€”anyone can review the code, identify issues, and contribute improvements. This collaborative approach helps strengthen the tool and keeps it reliable for all users. - -## Jump right in - -
    IntegrationSetup environment and make your first analysis.1.pngquickstart.md
    ConfigurationLearn about2.pngBroken link
    RulesExplore rules to trace and find security issues.3.pngBroken link
    diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md deleted file mode 100644 index 0dccfc9..0000000 --- a/docs/SUMMARY.md +++ /dev/null @@ -1,23 +0,0 @@ -# Table of contents - -* [Introduction](README.md) -* [Quickstart](quickstart.md) - -## Basics - -* [Commands](basics/commands.md) -* [Configuration](basics/configuration.md) -* [Rules](basics/rules.md) -* [Reports](basics/reports.md) - -## Beyond the Basics - -* [Introduction](beyond-the-basics/introduction.md) -* [SAST Basics](beyond-the-basics/sast-basics.md) - -## Community & Development - -* [Road Map](community-and-development/road-map.md) -* [Changelog](community-and-development/changelog.md) -* [Contribution](community-and-development/contribution.md) -* [License](community-and-development/license.md) diff --git a/resources/img/shield-logo.svg b/docs/assets/shield-logo.svg similarity index 100% rename from resources/img/shield-logo.svg rename to docs/assets/shield-logo.svg diff --git a/docs/assets/title-image.png b/docs/assets/title-image.png new file mode 100644 index 0000000000000000000000000000000000000000..8b08325617f71b009cda3617cbf360aabe274f74 GIT binary patch literal 798724 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]EgQ>EDlx0^d66(ylRpZh& z;sO=?3;%_s*DTHe{y%|#u3MEGo13-zn;^-zyMrOKqv7h*ltG<@-=MCQsW(xKbY=WY zsG$|)jNTGZo)olDr8Q~=L8hMGR z9hSI89XpH^V31l`KCGXmDXkC0zlHy3C%|bg`TDnBj_v65@E5M3Z}E%VHZij1O8ocr zWIqo6$!qfBPn(8pUsVb-c_QCu_#o<2{gUf7(QHD=WqP?g@0i_B-V-K!2daERaHHg zlY|;wC~sRVYh=9Bau~Z>U(fK%!?vGKOq=8>eKlGhCc{ciwhA~FpZ~_csHin_It%kR zG*io#l)3{>iGS)NaL6|(lrc=(bB#eNNlG;T#(%8g^4nw9=sVPpT%*7#3Zh#}&5-7g zYq4QpRU;2`)xafo5&-CHn9sLXc_Kgbs zS5za_lGTHe&%hPOe`;x~a+pea5s%&RJ7a-AB|Z6GTz&-k;JXt;*dO?pDH@3x{HFT? z$%X$j+2jJ+Q04eln?&MC6aIS=7&1(A%xwhoed@$~<#m1kzGL|)3cmPU@|kep=k5>i z!}$Xiz1F)<6>n@O?x%d3Ymk?t4cc1$IKLSC$uoZY#B;}8NEo&Tm-o&~!6p;LpUHRQ zR-9KMU3bu4EpC8d!#-cxPd>pnJwd2kW&LVi1~v>fj(NI0-bgIbpw`>5f>cG33+f$Q zCK&e4;-)$+Pgm>f2Y!=BJYQ2w6^38EH z)vWDYU|F237Q94F9(lvL-KhSklMriI>O6L8F1u?x7cLtGRf4wQOl!aye?`@>sVx7Q zn=B?{#qfJEr=s``J4II{Fsr4t*(XyR@Ex0QYgq@Eo$hY$cOiptP`AZyIuv-+;$24 zha~0rU9V|w2vwZCD?=7{KR=>`8|GAF7chQ8{$t)RT#licUuBcwcGI~KRGh&RV@MjUTkm%#sV9Y=I!$q^~maE@o3e;stU}&i{!)2szt{5pPU*TOYqJY z9n2HXQNvponY+|~c;g=~$dD^wI0(P4pvViQ3u~9!%{U=xmH&HI?j#97AXX0Cbyo73{Dz5FWXPnwP8*H- zJqQ06wUv^;;!WTr8H`P(-d~Xy5Rbw?|A8XIFQS!W-;?*|%6vuqm+&C&_~u%*tFA%( z)r@0^`6B-hP>_(5bM`9$;f7HZZny-?`!I|l9L=)loxmSa+bPe+zqD)oo74aQz`sF1 ztUvL#cz#@s$RKNo2_C|~=dzyX%@zu{QAoi{b7tH>lxjJ z0Efkb(zDPOFZ>5p)qlL2&Bnw(H?0q|IaXshCSP$?WI_|#wyON61`}FB1^kze($tJK z;aX`NzH{M!=l}078WxtuRto$(iPSRs6r;=aax-2-0J6{fwblj2I5l~=PGE3Vj(g$% z6s6gaN*y!*Gr;@CztCu_abd%zUsBep%NPFJ`M*dg@1$e=ci_JQ|H6>W(6@8LFUU`{ zt?rmac-_wEs(EKd|GK;*Bh3i^JI--Yhmn8cKf`nsP*>8J{nJA^&X9OVZVUWZ zRV1Qh!Gr%bn;Ll0($^&`POAQq{~-Y#Jwx5|3~fPw4h+_HGfjP`9Raz&>D*Gd~(*awi#9{ zXk?^{ai>>d61d{A0caQ>xhDWs#3zgO&C+)xqu4l|w+V-1-?7jw*Y7OaxBxC4q#CV z-mOP`oKF-Nho#PC}(>IzXKt%_QqF9DlABlFPR~(A3 zy)227sT__B@!a`3BL_8xa^6CLl(G)az-Px5tJ@125ax$aag+A zkez+{%L?MJT|x4vW$(UfxWIpBOrLm@Zjuvn6RDy-1NwxMj?Y<(_PDA!)+0fLEB$_; z@5nl-GxlFrjL+?sVy<&25dV#^vKs|hxA7kXP*(-yu`i!3Yi#m*H^cO*Pofbh~YDdQ_gDQmeD#=N`~}RmG@x5JHl?SZxVz# z;^|C7zg##R|DG6E1N9%T|H6Mp`RM1#3Sr2=e=R?@fQsE~FJTm0T10VU-iXE}=qZNH ze9~A=QObd8{Xg(8y}j|K+61%yZ64IN0Q5i$zY=7mE@dL9Ucp1oGK5JhWhHp zv!OtK0e;3aP(PEWUt|T@fuXqkK7mB!u#NwYZ%vRJpTX3Fn7;6Tm2l(-%{$t(oLb2# z@Q<{&10HcD4nAbnwW6`bgPg0?QtR|j|*{k?tH>(Is6fo2ceM;B= zIdoA6hC3I_}8-?8PPiC++#d|JdCt z#ia{1ew6?zyV=e^@E<`l{(GX>CU53sXe88W)}5e9HRJ^{|J?qbS|QPs*-yn1i?Ck0yz$>_ zW=zi;#^$;4Uo6o?RwUJ5_^)y-Z?x5QYM3@eR{4p4mqh*kgsI#!=-h^r9sY=%lEF}C zfr~3)%eh2pta*X|F4xe+6YXmYJ0ea<8~>ln48}$Uy#kk$Hq!OI5FsOM{1_Vn{nuWRLh==J;~LnE*1 zlZF4L?j<>AEf;>^KR>Cx{(qi-@e%%$G7(6HSfxfb-N$7 z{CrwBV$P4;JK6*~mcT)tzq`K?h;2d1Q%>6B)2jUJAa#=_rL8_Iddl+{QMlm7C;Dxa zdkr+iHVoy>+4k-fKTa!)9HFBCT@l9%;Gt90cOE@MWHq)~RDyzZx)}DdJNmMYeizJ_ z>QA&ywje3%^6>ffkp~6K32U$4!mQ+Gtcl1=dceu#J~9pyNWcBUf`YQd ziBNu)LG~hmn(XoO@}{2W$vMWqXWwIl4t!rBQ?^AfJB5wHzm54=Egf_{>S6g(!4H%*xqpw_%CvW@!v7O>A2eYzT=-VzFwy8 z9P&uarkCRjKoF`&d17qKj%=)eEIV+biO*ciXCgahslzg~{5}7`e+hSOTkx}4vDOpQ z95++ZlEh6;s|)|QP%e`nYI2D2l?EC25@j4U_cYRZWQO;!q(g}tV&@rhJzpML>+u;U zMlWhPmC7L|MdJSuG}O>$Bn}N!$L7fqFnhax>{{Y z`TtN$)HM#X;M`ogh7u>B+~7nM^twja=AynC%}nmh{$S1l7?4&(&+znm_Tc0juBmZwrGrMq1+HdC7PjD{4crkC|48JS$r&HTyt*N;qYt;dzWG=<$gyY>KkFiky_l5u3`0tM93g*cC zKNhQc=`fUk>!mrkb4(C2SLdbZc&g&SL~F2({}zqVC?&91)mBJU0!a~Cv;oHzgMe2? z1bYO;KtJ%$;Jjl@Z1>!^oEy&Sb~2xlpDB2lzGDQD#BoD+7-UIe*Eex(SM!?QG@8b8 zV4h;~f>wq7y0iZ$No$#G*lZZ(|B;NHd^Wa3#59UvVzAs3o5{=*f{e(d!b+d+cmC(7 z#VkPpTIa`4^$Y*9S?v$>Hhy+?p)UNBF71tyg9ReQ=L8%_ph+=kgllp1%%d`~Yj3U` zKMMbg44VPa+7R{ZF2sF z*4Z*d5B3Ov-Md!z0@wIvA4_S-7_w5pVxwNq>cJNLY7jg+1;S2D4V#41%8Sav2i?eF zi&{$G!kCPown)pko0>CjB6ggg{MjDsEM^zL&c%~4Q~3=Mc7IZkV%%WEfp%RpO`u|x z25mcLgG}yNcnE{6Tz~Gd+ktrk`U=f~NELh$4IujAyv>EMilHW0LJ4W9%s(Qzo3C~w z0Pmb&`H6pBL>p7yhv3w}eB_HFx*Z$v<&;X?6XW}_0m8onlhgtT->P(qw%GnmG26b7 zvDn1HTu%ZrUHL?k*ooYA?P4YV;cw)mJk_x9&!67Iv8006D`4URyh>$9F>a98DGMZ+MM(Id-CThJaF6Da&Bj;%z=82!Tt^K4 z3HkIpAGsrUvAW_jn|qC#lQf~C9J-ss`TX6OFh+>AvI}Fy54+qIPR=qx{;ws%x$g)5 z?fU}$YvrV9i- zh9bs8(PcE;GcJ-wN(7N0Zy;8A=5&KM#wzQ4~`Vz-_q3!{}(BC^rsh98vpCP_M%faby`>aRA88GDnh#7Zw{-vz;Wnp z=pz1&e{GDf)1$&ah`bWRf&USQ-1v8W<+V(NQG`E@8Y)rFCcJb?19_^bi#~%skd^=0 z6lquOI5AP{=9X*224We_!0a=m1hh&^S30R_g zX(nw<6wSY2OeC;V1w?GnoX09rOJ>}Ml&alfC2)t7XxbW64Yw#OnsyshWm-8d5y6|O zI3+LONx^AjBENELB^dps6IUBEyRpNCKit>>TU>m6-XwFIy&^M*f)kZcks#E3>d^Ph ze-bR$rD_z-=()TE7v+t~TAeC(Q@rcku_@7`Mp-O;5LHt4_>7B%lYv`f?PdY4S?jW@ z_XgVGvclsH?A2bz!il!1kqA6MP ziXCxzLPq29Q7h9CKFURipU%8&yF)T*@+Z<49LwuRi`15^!T*kZV}bL~7F<+guJ8B4 ze}}hZRG4SgDY4Y3gUvsTD|YJSe}&x?H_7XSQRnHne&IIfD)nU#{wM4qf47@VeXZCs z!Bf^j@$b;7s=F?RY~|fkHYf8U$BX05`M;%a;-9Nfb8D4yNxxZT=33XKdnToo6@Y(K z-j1P(L24D8gQXq(wJufuk7%1Ehs4TtTF6t-^9TN`61EY{&3Ns~^rx9G{LiE@LbN-- zHk&+~M3Kiro4I#k$k&~d81G7eRI*ksDtFtCdNC&Oub@H+8u)KEsj=YhCRvvo^7LWg zAO8$2bVNS)e8-!tQ?+uWId4#-b_PobThBKQp09Z;K2UVC)q;i)D|0kAnsWgZ;k&m@ z9*O?9n9aTbeK=JM|7q~r0C~odJc_AwNY&~vwHKJ#*pYnkyR0)Rx(zH0(jE9$X5bJV zi^E7Aa|M#86A^b++^am$wd()c_^%Y&vAx+H0>mP?R*Xk}X-_Z=Uf(n#_6{9v+)G3F z?#&g0@OO_*AybVX4Vn_g>wy)K?wk6Sl8sCF2T%5E0waEq!?D!O$M4DbtxF$n?roRT z|Khm4z3zbH-)$7E1U&SET!R=JE;ds|o?_t;d3@VqO0@))QvMeKazK!R9Vt@5>d)!{%V2$XqWyra1)U0Vrse&8Q|)s)YpJje;Sv+j_>V+JP-8g@T)Gkk_B>BRV7>&Ln`a-6;> zTNV=t&^oc(Dprj^WJh0CwxWDd@oNW!TaRAB4TI;{hHQ<3Xs%i~Vnj_!rcF%u}a?r$od$m#FnfM(j=nMR#?!1GveX#C96!hb0k1ftPnydd{c zTd?iG|17&h_th_F4F8o~#jmWs@XzpVei7ryfqdZ&iovcm zd27*Qj#Pi5y^sE1_~+Z64@(q++jGSufIJ}co!48F`G0MqxLlP82^Hm++~jqSvwppt zU(3zt`FU+frTkxu&l?U-{1*$6W}2SB;5+}<8qzy9uN8T>$HpS}5yS9dDH+sXdko`0?LT2d3@}jy3;**I|1l?WX{>{s`?2sTlhy|KNhFU5HZ*$(CGlD z-8fZO>;skqYUlqufigt=iB>qQ8q4xJo@spNB;r4HS@TtG{I_dU%7Gq87HSc@m-yCb zXzwz7>Lvk}w*`Q-$x6ay_L>#Dt%Ez!z^Lw>=`HJ$a%vgw%^BTw;a{@;8Vf}0!l4?C zvE@T?og)rEzpF|gpn2HAGyXdQ&+&GInOc>;oG|bFZ{_|A{~rIp@ZVX{EB~u75UyZ> zoo`aG8~<_9=Yxju_*(-fA|~^N@n7Pu!2fyc^SMGqAes5}r=4#$K{1FG_%O}L7M$}) zihkOP*~l3Bvz+!jZA~i>|E=p~Ff~^v$JP2}vc3Ve;P4|B-6w!+ z7310~K$UauBRv21&LXPHO?QI-AhOe6?Ph9XJ%>>X;4$b#|8974eUsI=QG8@>FEr2m z=Vy1RIZt_0-z5ZPp&pHAR&%vC;Y;~~Kbn5P?LC6a^N`D(CRJ?gQ|NnDSvZLQT2!7r zl*^3fRBGHs8}aREKz5XjZjg7~wFk6@51yMOryDQphVlEHI0)d0m>d2_{pfHB3%7n; zHH%;SM9lOaPCPf;u9_~BItzL<*-j$-0RNS>8tniXn$i|?z(jpAt;j&K<1IB-?&F3A z`7~dB6{dxlaQ#uOdXO+f!XyZ@Wl|N5=CQmS*!Zu`k)GQ=T~`8{zR!#8h zzTcorna_Gzv41Zv>-pL{x>n_JJMoWukNw*6+HN<5xFDtln2<+4m$%aZKIuE`B2C~+ z->T@SHi{*Km}e^FB)(_^`ceAS9niSX*FjTegr%*Uo{=-7NI-vAF)%acr@AQ zBydo(xSFUDEj9y1-x9!Ro7zuKi4)Z&={m`m*HV@O&N|ZJf#bKeX;WqXD#s-4a1+3h z#rgmEX4Q|q3)1`z_-~#_C+~fRWpB*Gu=3JJJS7&!M*A0Y4$G_A9BUz1v7I=j{hrnU zOd$b=VZ{a3s2If11F4GCSAl+y*kO$!;Qn{$K2 z>JU8RX{Z!)!8kZJq26YTmtzje2Hh6?*aIjJRK&o!8R?XaG3MHHpSuk%?^d0M5QBX? zaW-`J>!nh^?ch#aO#EvC+~?;i26<70wcsMFX&Zy1Pldf*VK49@G3PYE|NOxJO|u=R z2u(}FQ?FJt@X!3e%y!|w0{`Ic&-oAX$!pzfEjlrv(}PCEcwJFbSpbpUU;Y2N@b4Gq zl*kT z#@sPi#9g-)Y$oi#@n0MN8do{nHmZgH6{1)EpXJN2bbHDR|Ke5RU&X3(%2r?9*m#pJ zOR8|nc;$cIr&^~=`QNAepHuHvmg~)0pw~iO9t=G{fp}GQH*8 zoCGan?qrrOd}c>=J#I8&N1*E`2bRonn$DeaE9X9Au5>|Tll)L<=L|N#XO2{_Y6n?i zA=rjS!{P$;@Z>&$EUSLzT0gba#Qqrroxb1nGfv}SUK*}7Paw)W4kC_px zwiq0T9q<#k_Skx7?9(w-e@(Q*pc*b##j1e^#X_TDyX%z8;9D0;RH~#vsh6*o{fb=; z{Z+ZiAv>{g$OZga$?*Vd*a~2WhL|V;yJfwq(Woh~3kAA*M z4RiGX@XhoixEia`&vk;X(%0hX?9qEw9x~0T6C%Tc#8_#W@iYS%-H4pNfxlnF2;ue8 z1q=D#H(SQp6{;?nAhIYjnq9XJoEg&6iR3&L%{Q8yF?4Lvu5Tff@IM#+odHVk(+sN_ zYWzpB8`-Nvu39LFdGxd0fF4Kh2bA%rP=^sU_7xWeYT|O*$?6zjH=T#<(!T_yFj~Yr zmOucsO>2(026yk}4USdHo|AUw3Il=R$2g4Kxf0)^7Kqp((DvJ*%;%SngwVIp!q2>) zr%XGd)QxD|JR$Q+1y#khnJ`_s8PuRU_dd1oCq;ELDuJ^b|A-mV{nTEcdhVv|Xu7or zQ9e(yV%Qvji|1IC6d&(`3p)&F^=YzI5JtrkaV`)j7H!H`PBC7JG3U*csKq%{urKg zY*UE3Hm<7uNTNxM((almIo6-eIZ0im`xBpz(YSF;Kz-q#{^KHYP#bi)`!jOx612=s z(>oZ+ANgg= z+$Jj$mU=#v8Oy_f*cl7!krQ&QfPfE|Wrs%Tz&{%<6-(&rB};a%{O|QP#|?du1g4^; zl$3N-B2~a*lT%eP2Ncw*S@`c&cZ^(eLLl(Jv|EG2xin)jG{+q!; zO#Fi+A9g_iMgOy^ek7aDAy=Y7!Oc@pZTyqVUPV;B@&EEc*8fMgHjWq~6Y^Tl-uUm% z_)7d&D-K@nStX%uVP?@Ib%6%NzK#wbA=zq+4x^N^o=Wqx7HgzZFG^j+E2^1F%w*T4SCNxcqAWoi2|6C$>-n^Tb|^$W@R}Dv|IH zwvuJ2l|up;2_T@I2rQwRQe~74;_}K7Vop}ky!Ob4bI$E!|B&fX?=y*A%K;2uZ{IV${(bai^MNME?O2pe@?J{;V(lX| zO9omBQ8XQxZ0bydpw>q7dYeYS5(_#Ov`f431b?m9{pbw3s_oCAeS0n3h?LIw08FQ1 zeU|Y%OIn&Pn^_I6KVRFSD5J`T=5ccq4WIIhm+tUHlZ*f0zSEpQN;#xKIE~z9Qei6Z zT+#AGTHrtQ>GndLIm2aDtC2lLOoO|M4er3dchSzZUvXV}(6&6kO+*xAZKq@uPEpgW zd!?m__aFGrCf#b($12(N(zDq&LH4sk%@ltH`Aih&6t#t&=wuA#JF)m2l*ctm08`-` z@VHm?XnLp^{PKbeOKQqQoVT<>f-9SrO>nH)Yn@`OZ38z?QJ^w5Le82pXJOt}^RxAS zi1*y{&D_L!4~QegEwg0VeyTD)xOt|0y?kQJYvMSu->vv}yh%UnSSi~vyDEDFxBa;; z?WUizZe)c=zz)pWd2kv;Ks3dz@in>IPT|cQ)6tLG>8>i6g(-zxpq`IIR8tP zTKIR*UNH6s#LEBk$h34$U}xHl3P9X|%f4SlsFreiNzhh4C9d5N1Ns!hcvFjAhe*qH zAK-rws&(nyf&cEH#&PqN6+06&leg2g>yt_#tUe9p{;-iz5}Z1pOmXDVM=(zqs7PH> zhRPZLN1!oa#+P2_g?|d7gCN6rUt=C0JRUH_WY}JD=ASG0 zq_>TwTDPkL|CVv}9-7pP47J5%xXhtqD!lMtf&a0I9l00&>F81H z%<^Kwq>lZss9>qswhJC<;f*OaCO7^onb`X%vNMiaf8duklZ-lIR$5s%S=Q(!=zp#`tjZ z<7GC0P9yM+qV0}n(Ci3Y7jqFCYev3*W>HdngdX0*(_Rm0k~&6qtN>DRr7u#$qGL=l zY{V`TLuAaYoObE35<~wWCp8!jjg%UlX|o3)N9!TJ&-{f3?s>B()H-AcwxO-TK%&57 zC@r+u!1Xn5gjdG*b3NrPMb4m019g&2tkU!F6po1v3EQntA5gwJ<8;(rl?$ke(Z@-u z_KDw$86V=Dkf(dHQS_Vbi^;6FHi)9<*N?I}-eBxLeUt2l$G{!t-lxVkz7GC7FnjK% z9~PE7%t$(jE(SX%Lq0yUj}o*pX@_{=SxvO@JUb_%DO!;@nmjYMf|U+Rk4Q zf6ArEjjdwi%n=O~k4xK5l^bXkXlQw&n4@_5Pj6E9PT-t?Qj;*2`a6DkZT))9+CWr+ zJ7Nc*i?}GWBK*b_r(@D1TCK&>=fkr^`N3u^ej)=OT2kCF zHu!net6FTxehRpb3AkaAbo#gsZgJrTC?2`yM&Gq7fpLPo3 zbaKUh>k7WR?BzYlSre#}BNek4Oc<^EvqCe!SLt&ccxZ_`o0GWhK944HEN&hZj+vaM zxUfmCI`>UQ;)8}N(gwyc=Ci&Ju{1}l3@Y*o0G0@o%*k940V`Zb=s5bdY871$6$P}Y z%Ni#Xx|PzR;q}6QT2j%VmG>w{G7!oJnjxv=NLmqk2@>id}Brhh>d7ozMF)X zZM{;gkQ;gRz)|?O&zqS$#_}&6_^%89qdoxaYQq=VY;&muI?87AAn=b+kTs~zfzZSv zw-jU(m`36K_B7)uuC1T=ujTfP-IGbPKS6s&xk2*hMU%i7ta1yd3h3?&{^yRrN0XS_ zrtYjiGN&3dDJxRph5y$0h=)^6I?h&Y9KD|A#kSIJID zR&d8;UJo3B65@mDIZ=01ytPCAamg1&M)?1Yf2Aeyfei%QcjBLtl-K`DXgBJ||6C5o zq89$1Ac}fJe!Wmb4P{Z6VSMtYdmBT}RLycY$N2BS|In^r2CW!o?zPl1Wxet5&&~k8 z`~Xk*7cX=hkHYl9*p2^jyw@uiy#?%~LRk$7nb2+-Qvn$G$2>q^3vI=M3JFzn*76%4 zO+vxv1)@=pHV$U4coc-%8;$&TOTJmBLAbuN>N(|ae~u!f*EFNSmOYDNw&(A)tG`pV zHy54P6qgC-NdbajBL8pP^MdEcH-cK4P3VXSQhA$PBbkB!7XFzBP6T(wBIc3cjsJ9q zer?u1tW)Z3&(N5EMPE}+Ie#|`_xcz9&ppI@1}fT{ArqdQI*pXOe2?zBLH zNPIdQ%imIgJKxRz7Mi@sSHX^4#6}in?*c>66{@$6oR+wpq5s#~?DBeDR#5{uPB+4! zfeMk=f#2-nDDx-QD!Bi|&_fS=zV0|cn}Qx%W-?(|9bVyL1r4u?>g(^5kDp&KjH%*I z)B?Jj8}S|4lT4E8ruokl8lCZ&2!uH)fSmjHpNrNttsN*BdYv9d^P2XW6-wqQ%ncz& z_`@nS>f3<{%VT8Fycby$-!PD@xhU)WZ6p`CU>N^}Zb7@&qEUa^Q+_T5u_*QV@fF^6 zlK#BGXR|U7k&w_RV1uRenZ^BlC6SbH7{faW?MY_VRaP!vqum; zGG!=7J1>@vQi}Wrnuu}XUtjGWU%XyDvHm)GU?E5yXmemiKMHHbTKQ15&UsV;IX|MY zS{O5C%HL#Z3L#S)Z)9XycC?08RF^Ci8(~PaRe^t_M}gLIk+Z}uI~dpa|EDhhTeeOz zHaSh*T+!Lo%Y+JhcJ771iIJqG39}QM(Zb&+c$77Jrb`9YI+BhiZp|8#0XeT=LY$W0 zpVVroN5$q6f_&I8&U>!~0OmMgCANjxtc3@?bc|c!JabF||D`xPAALrQ6^t@j+r9A5 zm~>wGy7Pvlp;FcOZ&WWK6COKobPW7M$I6mj*b6#!}!0N>a+iE%ofL$KaBsn@tR2O*7y81$rXudz9^~q)F;Ll{wtiA)@1%$_0RJ@a=&8ExogDTetn1ebr`;` zZCqE$|?$8aHjb$q2r&Dpn=qq9ebhT2AH#%t+@8|L{v@bzhI)Cuuzm;%Lpo8<>ab zZy1*)ahf57Se`vSV}n|Lxb#oYVA@t78UIXqdF|~;3NiU7Xe7oozS?}jY!#Sjt>@a~ zb@E5%Cdu&~o>NL%=i z_pqq`dT4|-25wL`}>fAVOTqW0K|g)$N)1S3dI%ADXI_&=mynMfX8z94;hmSN_j#B4TJ4iW&+I>Rk5}$DlF= z11{17i}J0632x!gtvMRwHsE+xdFPICV>cpL84ZQh6mvIn7{-mLt)n-&LGfEl56awO zhR1HBg-Q_Q#F&qDjxLXQpU&;v6Ea6|TpW$HNFg1TNP=TLQ$qPl38c@MJ7-s?FHtBQ z89U?fv_5p{(HR-y1juJC4#QBrXNupUEiHgK&ulj0!7z!hde1Qziont;I{077eZ>C` zDEPRaG1m5IhBgDHvNH6-n2yM1QdffIMj#JAn(Q|KhS{Myza|E!%OcOzpAQ2D;mYwq zMxQ0LespWoXWI8r1vVQ#IKje&;X-u?9P6H=G~nV3@b^X3t5?4a;F}d~Q(8bAXQ1Xi zpeb_SEPIcP<2|hbby92S3cxUX77h%&u6ZYAh zJvxLNSv~L{#_E$}%EfxQ*cC)j*Ofohy_Np1h>fgyPX?BbU5ooqp!g(j@h53BiIOue zrkCvF=ILlpqnz1D03%M%j@ki??C2Y`=vPI2Hi!~%!hlA>oFro&+dzT=!U9HA2b)njplyDQ)wfn2_)XS@Xs%* zZ2bR^cE5XpDKfiEJHj+YCYvMwH}n6LnM<=?&EVJaJug`_IKg#T@`YtHjKomZDX>IeQS*479F;GZ>6 zG>3(M@M!D)g+=ldCsLpU{>_OxIB?`#X`O2d=u=_1(XJ|}0t|++xM(_M&B@y!DFxKu zzdqGJ@V{$~!Z?GE8%dI+=-RbXME#o$7sNH{5Ko9T!*KDkng?|?Kq=nl~GH;j<7z935P6@s(7!odPw|t3}srbGUV7vSoj|`msqPBq7gPbckb7qYt|xqQV0XZ#1(%H zSa9WkUVuu6n~?aA#8t7`jpl&VVnN<%01BVBGq#0)6*u_6_6r@uF>3W$f7z#tU^*Po zj`vE=ETw=?mF2}WC+|PJ^0^ET>glS$zd5-V{tvfLMGaLIwU!{a@Xtwp-wOV~KPhQBi%Pn7*!WM=x6thIW&;052i2f0p~Dwvm>q_rX{Q4J zK;c-1JMq%v8eL1OF^^g)>;zOH{{#38hX{IdN%}56C6O)iCqpIvvE~Z><_g7dob!Pc zLAF&15bKK+mX{*`E2T}To`8He{>#YEAo`8}+J~qT|BHy3x2&OZl4bRQl9I^u;g$d2 zR(tYlQ}~m-$n{f+|J&M_=f=M$AQp4RS=gXej7doyctHL~nQ(FPyv?&#GBw}JOCYlwi{n@OZzo71kMsPOh zjApWGlhR8(2s3~12!gYMJ$mP6J+IvuvYW&R{=t8!FF@{h_O~sTVe0Ck>jcrKV}!Gs ztLBLnc))Ve4$dk(AP}dutNz7o=Qui&iwJv~cK`ePvxxbVjpOXyr7bVxRdNX&f*O#a z#+=FcISpG^T`v$0NTe9^D0a>m)0h6mYf7iDiw^9FF=XN)W4GizmZ$e|ZsOnqax;D$ z>odzX59w(`K@|b&q)jkm04b*;DV(uBcXQM~QKX^Jt5uIr6juxVY&0rbaFu!(Y&@{Z zP!+gFKAE=aK<^m;sgE501eLo8X$Uat!vAg>>esdoC{odIgi~9%D1QAOjS_QV(MR{I zv#d$eOjUq2WU@G`sDNqc`Cel+Td8w7vUm5UP}>V&5ZM&A^;94R{sG>n5HLZVMOk6-w2uG1f= zwHlhjRyHToo8$a2`T^N|G>XD1X`>UHFre`YjcDxWvlk}vj_|v6#nkXY;aP?DZ{?#Q#Uht%)s9-F_x>#Q2g8B4|;KcUq=H?C}4{->l^x zTVGB1LYyG~S0i`rwrL8dmvV3vBr!7pM_d?jiWTlT3-oW;=f5mt;GHtV5nU~$2|2u1emHsE}820;t|LmRA zHchmS6B$3?-LPM;3wq71EULCu#ZKar#7g-0yvH_U0;N31jL84SKUaq(qjxNT(-yOI zxbZJrbdCuLC`fN3PVM}U#5_qR8s)-&xUU`OLy5tW#=pTFYRH)#5nPU^V!m9e^H%;b z^UD8I@BGio8S5IkGQ?Bepk!Jtr66vsv}H^EX4({X<`%q)D2ilz3a`+M_}|f04kh7? z%`&Hr=Q*P;G7>N@rn#C}_$MI;{hs;R?D-xY2y1CI&fnO=HX>z^7 zzZ}a$S|^qRiG*5B>bY;p_4a{ z9OZGjU^$%uJkA4t>(lhh;;TE69Eic{ivK+Gd_DqCpj&)4BHl)`7_rp-B4qV1A8F63 z*nSWEhioU3R?}Vj!}7=>%m!@_&elWt{AXt@v*U>hdX97bg! zBbOPhO5;;z8z7#OFt~60o%ULG*J{jLn81JayuylLs7YANHvR1JiT|Xr5^GTW9OLRs zv~)oOnznJ1Z8RS`^N1g-Ri`vKQ;y|0-}mP|Lt6$I#Q?gADF}Q+ei?H8N!gvTaG1e*MffMqBGraa>Sc=g%ZM z#YfsN48h>Xs)h<7;vIj-Bgp?_xpUms_)YoRDXV5fsJgF(X3GgL{8ug=(v~2H$U>}9 z1~S*Lmv!>g$Z%!+&%*!g!l9zMT(PFoBBfh$!t40(w@6Sja~tCP4BZ{MR!s*PFN`a( zV)ehdAVNOveg@`lQYFA~zfzY%aAvP$v_S6EE8=b@LcdCh$^Il@$1!X=<)^%~F(tDy zlcLgnObbKC%xBp{&6aA<{$WnQ<*3smoC>jianoY&e{1hk)ckD zZP#!8TKI3E6&2Yi*aQC!{C^sa7018r8Tjw1e%W{=LN&xs{KJ|}{KKG(yTM%?Vb%XI z+DSeg_L~2I8}Sv6j9I#(!8I@Z7x<4gQOg(?{+*Q+tD4>6S+2EFHC881JE&A#>XK>k z)5bq%+wzaoz#IRifGzX)?l|Ne3y@AE8WI636iv-WT>Zqq=UG>i9|QkSH4fL^_@4{^ zYt}SJj(>i;183p~@nX*A-T2h`-<2957LGb@yk$o4moXOt(rg{qxbp*z===TD57Dc4>IhDp=ldb-#<>9Yu%s)3h(X2MrBA6 z#MV?z_1z#67%vhS!?7pbg{i;Zyzt7qPU|G)pdDENb@)n~huv5HtXh6*G0m*^+H3uX zZ@*(oFP=7xbp-7^=x2TmglCg!=qEaCbdBVh2t=E9jt+MdHWTb=;7ln8EHkaJ6k)|W zv?pk;`j$iWU9(YC$BB3pL}4we#ySQPMX6Cyr0s+MccSJsGgsc2>zZiN)^p0QTrdzx z=LiL56Y82emo^Vmj&JBthNK#(UF6~e1K56E9ZY;LJFYF}DZ$cM5y~DYs6debx=DKy zp!%ZgyV%%w%29kC`C9K`qGf*?L&D{HzLB~52maLzDY_3GPUAyCuc4UFpFS289=qpTO*JN>u z!CZ1!tcnKtpWH+eIEaS0H~wAU*d9*=skvL;o4~!s|3dd%`M;}jt>?_XIu?D)aAY5L zEM0{k(EhFP!|}tE8XbysokT9`_@g zFZ`c8G82M>qfdlmO(g6pRBJaZYO~jbDk0jjQj?SNMW=53JFfp%lA5pm-{bjH;8W#3 za6`7A_=iCUaHVO*c_D9?SM&@)XL{Sh3VN}+r)_@)WGM>R-O7_%>aP=_y#uGaL#WCpaQQD2p&17uMso1Xnje_BhE_lsFudHhG$_-9PXz z7qRTQrs~?!s5h-9a~lFu(DPv1=Us^o;NQfPJ$KJNY!p=7dZs42GPx!GHFy65|GA{E zH~uq}AN=bI;~znf`!D=wmC{idm4xmv>Gn6%<`r|ZJ6(5=Zejr)_zvfFuR}#(cgI-B|GS_t{%3`x@h|$l@Lx_J%Kz{{nEl3obrc4t7|sTm^Z%Ny z_upl}Io&e8=j8tu1>1PyvjYA+I8sC4zX+Gkv@qN8<*Uy0Zq_^IZL?9jieW(v3;v0v zh&AT;#6Ox#9mEbE3LKQGe;eVz^SFK{%Np9VQ@&p^)+D=KJp?Z5VCIjE#dXJLWmJJ{ zlgMf0!dwFQ1=j)oXBKffE&%gD48JknX>>%++X_h$jm+qfJm}lE_|gi5B1T;1e+p4` z%}2MS9Pm<}oL-_1tuM^C%YOv|1Ch73H&!}qSHZE2dFlKE{|)Iz)QAaY3|w- zf%ShSCH%nuk6-#4X+4U2+4YQUQr7+N-{1Mv#G)x0p=EZZ3wDlZ$)K@d2L=0L>w#VO%|0l;R-n3 zFbzy@hlq?TZEK~7V+TZL=Z)R&nuXh%wNSnJ`_gfB6`fPgI33}Wc@qed|FWsxmH2<| zn?SR zEdN5{3vlX${c+PCnm^EU>*=nFb8TbQIxP=+$w=x7ylOLumyhzm zh_j6UDBBLQF8r&cdEtL^2u(cG(UZ{TNw?vs6(t&?jYP^b>K)95qHzsS zQvawDdik@RPFyEeu8Ah?F=-ajvF1LezVm82Fy-r)&t|#iT(d6vf&Z55fn6n$0{%Pk z509$GGI-Z-99Dc{vOJ<zK;|-S* z!F4Aa;}e@Q3@lw8lNbJb;s0nw{6m|Vr1GLmvxWbvsHH3L&oZC{XybnZCms2JfwN_M znMFZqdgyY|$NYe6>Yw;W4bp6K)db_owk#uz{|fx~%KsI(&N?9=K;t4u?f0j!&>;wp zj>7*4{}cF+d~>Nd*{xp?CB?q+pSgl+h*ZO#Vr_vb(;fZm^?!+pI%4L{TzCFY=God& zXPn5UqRMUN@xLbJr+D)8d?>8U7Og{DDNn9Yyd7LF>WW2=nTd_l|4_2y7P);j!9fmX zqZ>+WE3`kWsD(!-At|{U%uVIZ1zbr{x2Ic^3o>XYg-y9makGbI{}?{Z3%P z4s_YF_2xP*)@Z*I2ceboC7LD-gEOA_k*oGP)XtOn4^EH*sUl@Tn7~~F+tjtGkt|TN zBCa{N?Sg)(>W~wUDjXuNLQNsZz*r^_>T9`UdEcD9Zgq2p9E!OInXkHXEtAc`Ge_0} z6|sN9yB9!_*Sf9-GzO@wX*mYO(>=#i-|Xa+IZTzs%9 zpJoir)f_$BBL>SlAzJGd?pfDjL4&!IE>A-^vd&=x*a4e{*%X!zUU@S`z_xAT|9+)I zJePSVket=JNMsoZi07*2po2;Ed?X}0S>Dq0lWL}8|LEApHhT@zje$iB` z*9B$VcGkc(OAkH5g+3Bq+j^3=niULSW&E$0GcPi1a^obZ;VyDYu}Q|{>B}>#_=kDN za#ZId03@dHA1o?g3tXq_#>WL7jE4LXCJ=Da3?DONTXS+XjwkV7FZ@?U`fCW6^_i{_ z9|`{-Ca}!^CDTh?rm=HZ^aC8Pleihv;V1{yFZ>Ten{nmXa*Xi=vrQb|wh2Eh4TS&V zH+N>Dka`(c3{KzpuX10(b=)PYt_S_Jex@&)`Dl>u(8cCw z_LXAV<7Q49{ZtMzPuB$7fy3)>W8zwQnKjFIKZ{Pp02jLA)W7+z{}2zC`U)C3u|m z_umdtie!2Hps~kc1(p#>o&qbP6XTbn zYKn!#1pc>HFZ{QxG@5&Y(}pF0tAduPY9h-1hyQN`AF;3KtHgg*`gquf#w`pHh2-@b z?dumKLvDk`&Wo3|3slK#{O01~C;m%|@5<~u>(}VjZsSd6JCCg#VEpr@Y{=>%xBp{y}yXwMQ94 zj^T}eS${2j@vr~Dza#eVv*+~OIdQx7E{1sE*CqiXlrV?*?-IBWu0h$d2p0>us4frE zYAVxEOt7;n{I_f!R-si%G4Qk)1n+D9x?SR8smuAlm=7yBC0`6pqizB~Yr4x}B^%KY zEo>6^zyzrP`9qwxV6~LdxUCQ<8lbiQPc!^q_)l1{peLsc>Rw82pC%_*$YAQUV`hp< z{8uhA&*gt#z3SZoF#b;gC`rqWjL~)Cq00`bXolO3fAY#j7OMY?yLk)W+_s8 z&UZkat%YO6&#~!Z4aPHv{hSa>ZQ|MzA!-rZo#}K!ysl(P+d8iHf&ji9IMt`xT2njm zF^0NT{Y>=ny1TA|wjy&JlCoM=?FAG#Ltm$vq=Yz)iZSM#$vu*D&cOw0LDEil+e)ZE z+BW8(9lKvfTddQ-Bb%D-s;)81l$)aoN4P#39bE|v`kE47+*DgAue`ce;!DBx7!g|x zGpVF97#nx`eXcCZ*DfBz-RVMFNgMX3BbAHMd-Ec$8NT0JO+P~H zfF5*38t!#q-_Dq@fw_^*QX7z^LVLVN+fJ(^K~0dPYr~FsEXzSs_x;%{1?iBEq^=rV zv6$tmhQ9HRtkv+ir6&Z?LF70#fQJGD(g&QYhAhRuWe)r+yc=IR1k}Lr;46+(YA6!_ z7Iut(6at5|d62G@+eQm9+k12(owf-$QeOBI3!u_l=?wfF`WX0+>V#Sz4f?%_*~}7G zb5*e^&eO@o4gSt<`DwhFA+jL|EIj}I!cJ%~jqz_^D%z}H=-t_%!Qb4s8#Rr6dl57i z$e5`g_(vn_+z^`=BeBZyuHGa|7I1@f9%HMFe_cxQ$VChR5Bz^J1yD~OO1Cbl2polD z-y`K&1e@3R35yaSFXG}y`YG7D96Q)#|GWKL8BcBAsY^mpr(FtCE8^eHYgbMk8)m(H zvG9-SH5Cbfcwr$?(KtOia1%Nnr{R$6sT==tWgq{ZYrlFt!?{mpThFKW6*M$CkGgbi z5%%9Fy@3m=Z0F-tpDGvEWbIIO^L*bNQH*_asB*>fC`s_1CJV#*+u9Z{xj`RF-F3tM z+D$Ql3nr3pnP(=x6)@and*ff`XwkpsRZPb{)sf%M58$7=lNvg{tvd{sCdLFbjM{t7 z&i4-v7_yi(boiXv+SD%h(?QK5sVsCOwnLfwwHI|E@=)Zqxn!1O$7kU`<^11;HBN*} ztm#(7iIrw3f6?(kSPTDoJ%!0-s%%jNC2FxV=;z}dot$*WJ2P+loE;e)>pS*E7t&0`?6!@6%k{!>sIHo4 z;lF{`8~=6Tf3eqCcPE>oLmDT9921^904rp{NSX=ue15=}TM>?(kARXDkpEBI-1u*~ zv_qC>?zv*oT?vRjnCT(&+%wYlXe^WpcDu*tMdvQ(ESb}Ymt*;;MlP+{^dM&?mUI`g?QhX7};MCHwMB+$zkwT;@|ik;a|PFieBnv_FixC*~$LIg!{(7bLaE> z_dDaFIPh-`7wh*+7R81PGKqglQpP`wedC`wmAQ)^c<`_1joP6VKAWBYI}AmafM3U& zrh6xQBAp?6>usN_*vqeMR&AS?`3~^`x@HeWf{?&0?;a-c-^;+y=g)bOiN{y~Eiz^? z_W70m-i2(K5ABJAdAF=dWKm+IcTWR;?7}WXMNMTi>M;U$Db(G~Ety%dapLN>&6!74_C&p1iU%~! zJ62>FGXr>yOhsNSB%FF-fC^gnp|K0VR6~?DmjCo<34X1o{{e{nD!wAWrt+&L9jElD zKJY(#A*>i!gceVFc%F6aweLyH^vJ3?x)zy6Eb-9_g4oCSN24+OO>^VFHs72K-AeRv zsS45ArHILHxNr>Lk7Etb(NrPmfIV@(5*c)%Wf;4~hTGIKbO)+NJ+@)iIf7Rb-i3b` z*t8qu@R-8CUx#&1_D4J(n~po0+=Ug9Y{QOV^mmQQwcy3Xf0f5QvLkw~XbDGk>Ud%} z@V|p2iKvm!s)km@>WDNX^4J9kXB#9|D zfW6q*Hp3W-9g4+LVAbKqzf)3C$=;AaZqkGYpXdK-eCq0!aVMO;F_v*(`-FGX?GS!! z{c;f7(xWC@u?KMcenxY0IPcfdd+v|{vh;K&?UrqaJcfw6M)c8gGP!W$zpCPCUftzm z>1~fV+u;A+cr@m0sh{|-$yn@)MaAUL3VZVx@?+xvv0GHUCEe@<`rHcu+s11lirmq0 zn>g`;fv636C-C3EYm!R(8h$I=MH@boW0zFXE-}lba^B>|2$ZZ)gf>2gG5%@w4jQU* zUeKJHrzT>V6SoyY{;$aY6ZpRfpw7Cmc%$H=oh;&yN~N6RMnJDPx)(IeF;l@s9C4M2 zbuks2brIG=0Poeex|9SbCtg&#bvSX?tXG%ZK{CdFr)+0v6;CWyPeE8()Usl-qXaAp z1e=9k>m!Uk0?pnQ_>Xy0wvLU7u&b5>=X2}!6aPY&@_(67DekKOSELOss-o($d9}b^ zbKzg7WIKcV#92auUg=s8*xl0mHQEqyL+5Y{%n1BdNh2lvz<>Qe;C}-D6K1Om|Hs)h z`rmDzb_6Y)bf$g&(o$IwT(;Rg-@!i^B$*}fpN@+AiT*R0@XyV~0{$b2gGgP+L6K$! z(U#RQN}O~F{+os*VHaX9xeR0#?GE&%fN8Yk+O;{7?K(;9qY<{&&tu{L_DIP}Q4@I+bfmEy&(h_?iFZ|4+v? z!hhE4qAe!0s5>C^=2?(_`t74n+Y4ZEJDZ&AWQrJJOwh_rKP!%LY1&ILoz;E9yYKrf zhgOP@?~bjf-86oVt4^u$tc|i^Y>hVQ@%r?$LFS>(jBn`zWE)&8Stu9#z4wxPI9A9DE{Q zRer}jPH>}pl-Q8&b&LqkMx5jRDRrJejt2lI;Mw%9D8m&$M@|37dSJ>5XO%xvm!w(d z#R4AhbBgsy3}s+|tF02GhJNCQ9Rtx?M+`%UBhM9&V7*xAF@_;;M5+n`@&!(XreAv8v_2T$ zv8vc!j87ngdbubVhQIl@R$Ro`PeHcw*@O@Ccf7$H9JmGI?27mmu{2Lqx9tIWX1zn6 z7(IWsW$z9hRL=|xENuie=OaaqANgAvGxhsV{Fj!W=i0-2U}flfNRk4%%;RHmIOj|K zf_~?IQ@I=N3NAKtd$2Lw&Ug9FE_s8*xBMNrK+QNz?1RC=)yb}cBp@c+N} zzKjRYCCt_ftwq&(Mw^AjzklJMYJTTeF=1UYp&eJXRwBjq=g^&6DuZ}1f4%Wvik(rU z5aU9b+`nqKF6Ji0Fygt@NT^Qywd|5Bi1Cl+dTiovl_%tK@;^cGSWhIBR-?Zv?OCzN ziN$o|e_Z@8vAS2wK?BE91;$k{QUA`BRx_#zw_$N{9NQY8v5>7?2#Qm4<6n)!WlFt- z|K_#C|AelI|6;Ra+y}BA_u$Ddo}<^~vf*R*hfkU*A`*pbFrvmo&&~t0xU~}7Edsbi z)gsw%a?o(mb)TETax53hU3XQOF*6D@0XR1w3|Iuw^9Zr(-}vteD;4lR5`}AXhJsh} zHq1=SnkQ=>e5b)8c-p3)c@3k1G6F0#CT;R!6Z;W@c;6i zfSGY)YCMK=u2S|;O0X|GdmsP6f1<2H(hB^)!s`eAKY{-;o?iIx@%mttw0`5iCC0*k z*^bhRHU|YKtt|W#ETB0+rZjNKCRvF&Gy9rEosQ*u$gZq!2s>J0K+j+-j#1~Gt z8L#zDF@c*agk|O=d1`>v)l}SAQ&MUFjM$m*u0QF>|B)Z3G6fdb4S{-2sW_7{YU97x zq?UXBg@5xz-T3xUfARXAaN%?8_t+*wjkXweI&mtj(DW+)F4zUxq2>FO(C3i?Ohh~0 zTej!P)OshcCpUiz1^l_YS%hOXTN9nj(?sPu7#lIstb`1wJ(0*NC4 z*K9?%&2=Kh!p>;RKnZ>vXPu|TStpeV{??mJREd+m8YAC0?Hm&Rupv^OB2J6h z=f?+nWiwa-&zp~4eW%lNgTj~hSNg^5jgIJvYXcak);dT{u?ioW+Ys91<{+Og1Io>< zk+q*B*R$+1X>are*aBzsjqeqBCoDdqh{l{g;2BI<%-ct9HrqP&LVi3oCFFc$;A6d? zm_Of2apUhaQG5HLvD@5Ew4IBH^d1^l3&X$hUuqBxiVTKdC)7O%TrtG|*e*Bzo!aK- z#I!wa_5Jds^Q_x3^N^zx*JIikB|tG@@I?FcEgNXG6+ioM0kUky8bT*O+Cw5HiGN7c zZoR$nKgrEUub6K5uVgsJS49%yLM!bf9`MhpX!e{~nahUQc&TMA3FG&XlQQ1UT_^VI zq#aiTc&k=XLr#Yx7ycJT{@{lCjP)Y6M;NX9W$q|8a1~!u4CEs@FT_81e(d8NUkAFaehVK`9+uba*fio?bd5ZkRK6lYNnt+H`*s#el3;)&KQRc~~p;p@%6*-b6 zPL&rK=l0v6kTLXbuI9%@7Z*Kw`-OwEAmY-+T={jwecW$@!+XV!1GCjQT>36Qjq(3T zdf^{t$A5KOpRGEq@}#i!0{N^dTMPPE&W3Zdc3+Ew6UW*_E%T>WLnordhZV8;NJ1Zt z|DgiyFyEYR#&m_dH-=H>6c0&z0oo*I+KT>SKBrCXL)^J)b5M8~tKPN26rU^a4O4G& z*$^~$E0%!|EHe52Ss&EJeNSv+5r;0AtUoac5XwRu|A97fNu$ofw5>IGE14XJ_ovW| zkgmCql0!}bFg70MgbZU)1pZqfd*h#*)oGiNIp6rNwd>Xd@(=uX*%C!K_`bk@>z}9L zf^0iw!-d6*#hQ!AggtuA^@NRJUrrDl$OFlr{NQL+}#*@e#sB zoM2yxdlLUFCMgSfNPe%-8&eJ(W#SQHYQfGFWZv9dp&Ti{gtQ%*SG+cKe{0@M!^{U3 zBupyHbyzE9sTQ^^1Uy*LfZF^RjFwGp>pHdYKR@x076)Zzj8a+DFY+%j>)6vc^~AOQ z=BB26NWnUbp^Oub7C8}qnvHjoV%8p-M&rS^vSs+McKN6#|1c;?QZ!K3uJ*wn{=ej4 zffxb<|D~Eu_#bTQuKeG9*<>!i(%+qp*Gwd}hLHX6e~0EHT#3nrI{`K9iG(8z_A7}w zK)NDN3LaeyBsQ6?<&A&P4gYJpgnGx?HF-Ml-~Wk!CeN@{(PbZh)1c0OSRS^C({x3G zD^iY5Ho>01=hq@SZDm>&<2dGJnmKgcl$dtc$Y|LP8Ira> z8TRB`+Y?h?G9$(suLSV<^)jfH)shz-aIFLmF|-N_i0 zWk+(_Z0W=yc1pcfDExTz6vKeq1pX@)_O#z5{-=XupjiUGO1{({@$4DCvs?6Ng7HUf=P#bi~}z zSgT)2fnBewan!Lv_DO@b@>2f?{yR5nlwuVVi<4C13PYXtZ09NJzr=ZN{@6Q3PC4;? z;eWqaJWCGui-?OZ;vcD;#e%4eLm@4mbzULmv!Z5z9s`~bpRtdA;J->qDBl>;#X9X? ziru3ql~^)>M-5pipi!7{m+}# z*-#h;%K2y7jUzOk2mk1P&&~ukn#_SPd+PPEg#7-*zlgSToruwt4*%Z3ee*dUI0M*$}Y$ zfhcIQ7n+11RqcxeX)7=C#>Hi50*;T*v3R707~Cr7da-F>kJXzO(AGPFeij2<$ml1u z2?H7b4x7vPO1VdFdTg{vYm58?|1~SZyHii$f2@BwK0S4&E#LuW+NMGl^8? z5|B3qa6X?;l$=$)V!zwl_FYM;u?*1bFGe-(zl{`^~?bN$0wAnX5; zQILOUT>r29@3A-jk;7#+#fC(p6ODfhyc>4u=&C`IHa{vIfe!PWWhrG z&jkJ{a9Px*G%a(y@!$8m2N(R^KY@P(vPy-EMw_Afk7UAs*~h^DvJT{J0t%-1!~d7? z?z&&%y{dQf4tF8sX`fc!fS#msO8UQFKh4b7R_e}47C`{r^UqSQg#R-BowIQ0Zet6i zzw^I81OAr-$!21HHk_XKKYR{5E0InaJHqRV?Xc%nO{Gy5{{8PleqQ(&m^sY3KJZ_q zyiF620=6psJ>w?f)KC1E@IShV!OGrRU=C}3w*H+{hWb?6XqJ(%aCI`C`3L?xW7ni| znj7!@A4Vts;gW{TCDBw9>7H77sdlxX*ChU1gz$(;dzL zA0Al|cGx^!FGP$9j^LK$ljuJ!9R zZf=nBBJK=CqI4~uMzshT)J1}<8T$@|0{J>syDc%zQ5wnrD zXdUCf=UOVxCdBspVK<6Nzc7C@k2%0*FN#{Hc$K72oHb4nE}v2e&ii|_h`6bR(W_}Y z9O{h?*|aKkPf(X~>~%MEXDVtS!uJLL>KBj-K2iRc9>Clv{mz1o8?4|C#^WgoYXQ4fPw$P z+6l})x?T%BykRkC=dj5_IPu*wM=hY_Yn%82mVo{p*>!-ZE4BQ zq^iNKx@&^4Un$RJNFbVena&*Lrihv&WBcde57K`SfMOIj#`(vM<*~ zRTaLoHLG6r|1)vozeA5O--v%-1QL$rpNXTc>VFb|>i=R?WK!ygX^ZRlVP>TsGjr9j zfQ9Hxz$ns({C7z8g>T1ILzTWv1dSP^_$H8Qk@);zYTC-vHx1sXa;pCa{*xPf<3D22 zf!1&Q3x$DyQAG#-HR;%$fqzXjwaOZxaiR&oQgqkC|KOgpMyfEw0RI*ECpXe}?L$fQ zF9z=|Z&Bv{EOrV>P;x%3^; zZI_Sq(w^{raR-BEuxO!Of1vM6G6*>>+%xOj-k2xyiJBD0QNvh4(|>`LrELc~jpKFz z6rv+$R^rf-QL7D*#$kq`rcIQf-IyP5#(xJky-Dj*d8s^QF zkl~RX)|A%;0P(F=zkP7xitvy7s?^{r!6w#VWmO=KLyk%r|LPs~b5fEgJH49Z++pm= zaE-}>E6c+yTyl|UV6Y?mfhjX@vuS+ne2O9SMT}8ZSG_JNa#LvDMFB)OLpI9{;Xf12 z!oRaXhd-jQ`7jRQOm^Wm+O+7aA*lBeNZWJ5mR>@2^;Vd*`7Hbs8#Kn4q)$p|eK?x4 z9m4Gontr(&ISP{Q`e$YFe!)n41vKE^v0flP2rfoNFfq5zT4Y=bEIq_gUTgN7FLINDitfz_=~Q-g+3fUfgS@sVj0wzf zTRU9|8?P?Es0*FnUsx1=CZ&?SCzG34QBioX$`KKjsHTrtQ6>E z_YPYfdjiK1Q`$d1xV-Q`gf1R;Q8ng;jvs%ICkiL$m*%RkF7t)|3H+N7l1uQ(c!1-s z_I*1Co}OaW%$;|*(J*JRgjM^8zhLkzvRN>=+ZzUo!4Z2^g4-_V7X-CnY2pu^(q(!! zGVu8sT#K}_i2gM+&DC5MQ%eMd|M`#GADqF2Y>t%IQ3D;4jDcU3RarafG<^NU|HQgp z1ypmYB6DF@sK64c?67lTbhiLm4AM~u*bdFPW62DpaHNdz(J`D{tkRBC${R9PCAt5? zzh&Qyeg>k*csKrxm^)3Kj(KqzgrSKk1~|c_PrfTAmkWF29g&JA9XSnSKCiDnZpp|W zS>9lgL8|QFgmb~KV6|?6|JM4muJC7Rxg14}>~|t7xWE$7hoqf(tu$_)3LbyqKZ93} zM8F&=X4TNg+{9o5pta$ZiSmc3I(9ijQso4CwvGRBGs^fsb4?Ndih&FNmc58az~F~B z`~1hx7Jp33@{V_LLt_=AT04T8nVSD};vX9)_-Kr!3;!hV!VoLNscE?JkKT#M`Link z81V2${ltImw-1%H7Bfko9oL*+zQY=^GZJC5mH%1JJovluPk4(U&qwHI7P#c%y$<6| zeItDp>I9a5=1A~Nm7sR%H0hgqqkAsvI)wH`jH{bTh7lzE*TEN0O9x-dnEWx0s@gm? z!Gv3e9EJvr92@vII~e~ATju}X=^_eGQ?qD@n>&u~vLDR9@IP#GLZD)9-Zx&YcczVB z_(#0KSd5%>-Z%3J*Z(I*Bi@^1k7d+68~=`Ht$29d&@LLA2AkAzWUF2|75Ha8Lb>gS zPaTF7=ly;)ga39EG(A5D&AULSDjI4fTU^hn2md5@e@BUrxbN~*uxoO% zXa75vV)c$3hcGgoh0HqLEBVjh=du4V5Bgd_#R;v}F4Rpz`Oo63# z6d_fz)5(f!Wt2W3Sx-luX^Y&I$$Is$BRP;^Hds53%=9O@Oa$5Iu37hK^6{VW{VGf% z39g^z;(n3gmfj;EZH1GLRoOc`#_JI7d7p26#{I@QmLHy|mOXo!rkG>S0Bbdfj}LF) zcl~6MGn0E9xsjYEsLh{eNS$EeEufYL&?1ASxty&kspWhm)|_%9)XN%=*pX8IEDaWYI?4~-_#Vws2agoi+a=oL_B3>maG z{&TQXAhig(X(G(quxY&xwoGr5cQcDMUr>`yLO}djdB6toL>j}WUV)H*y5Th}&+<+P z$zMOSg)iA-=JzZ^XBN3-$G_-vb@$%M}L3eg2fx>st8g9WDnK|s4j15S(Rj< z%a+2skx1Z6{Bg0e>{x++jXGPGQgib(0o}|ktOr()<`hEhT&-|ldi@#Y6V1Ik7;xyt zn32Y$6;mrQejSDXU%V4%E45e*=l?;L@2UtYq~`pF!KS5;0-q^7Z91(+Vrc<-JQFAT zquJ@g*!i$^mV$c#rBX{9S_k1ij7I-Ks!`0{@Lgf79^;iXMi;2vH;a z!v%qVm4?DUKOP!lsW4la5srJ?=NM_@UuM7XuVBs*bT#`71&l_Nh}Y3G4!K74RZ1;T zx>gAMy8=Kc7~~88G%_1!JEj$s{H$L};ab%}c|tmp=skCwB-<|r0mGoP*|@AV@o(Xj zsS-Fcz2G+SBybdVtccmfYKLgT|F%`JVN=W^p(=&UngU@zG%^UOL*8N6k5yOV|F)ZQ zWlH2>B45b~3F5`~wQZwZRsMaJ);w zD(C-UrYz&Q7Foj!Q-S}MZp;hEGp$;(e{LIM$|L_@u`17D?Gr>#faM7@(B0pgDM zbSE!L3@Z75y*lQMcg4k0sY?mB(QsiCL%_O5QtdgFJp?ZBtEy+kgspMx0kCLsdlJdq zvbu<34X|vxJn%Q>mv9~ralCvQFHc-^*mdD~eHQ~^@F{yi`77yd@7J7rHVs8x!I8V! zrAp6+HLKkzdK6dgSv<6Uz>o7Hh7v9?mTts*un9Oa3YufQza;Z9g^8==>Sc~mK;QY+ zdP?Mx3LF2f;H&zI_wn;uj}ERA_$=S4VKc@XuX8tQCkdXh)v=V0j&M=?#WQ+0vXbK# zjYYbSYqTR*Ik?37z+TQZem?Oei`>|ry55tV`JV9~tLo&=IP_6vA8h<l19`}PW97smHeqw9j{mK}XYTxlhC!&&?%YkyYlvEn z*1*4$b!5zA01-bpsXI=x5~H(8&?^lOyR)NYn>j?;ak{Tfxd*jZmGWUUy%=y z1?FFAu}T^1+z|M`BBG+%ueDp#-e-P&cxwn-s;&%Qvkb}f% z?eiZoe7{;uqpKeY{JfmZ4|~%5c#Zil{AcR{A7!H2AXx(sjB30+0k6)?IOt?J*|Y1~ zpc8Y=Tcy56sVo1-uQT%v2Sb(4Nzg!z`hU-g=kmU!2pcfg(mFrze?dU_*A22tuX|?W zp9vg|p0HD|oQls#cf4q3NgepFmBu2LMeU*LS^rChEh|gOu-C2@f8_rBl%X<{@!rP& zyc>R_2yE++`JY-WuIo%T;s(aiMExPMfCxUZ(S^2M?F03wo(U5t|Z#I zJfrf5@zBWbcnkv*@O+wCz}ihkMbX3NaF6ZI0Bkjt3|K5)8s#1n$PWbS`U?qVj6-5? zlD3Z1Lzj|`+cAHV^}NZ}rN=QjRx@z|>TqtAG+dNI3u{tdubocvO35efdE-8^`s}wQ zr^vo-1We~ii zSLC@c_^WB=-MRIok5ciV7(gI(LRp($Cq{>h%V<(eG%_~+SHFI?tQfO7?f4or4;~AA zp3O&%?>mi=Rt=?%bjFbJf37`Eg=U>XnF9aO8!Q!KeEh`u-1}=;M{pBw8Q<{c*h4)U zvNV(k{8yYZIw$t3@+9U>0L6Oie)p*05-jkK7&1Myt|`nzJl5K9t5uWyHSKT%PDl3= zq?aM;pZM4Hs2?fYF>tQe<{qZSuM?Ar3y=MXM~aFP)`P(f{MoV6IW~$$cV`pt72~6z zei1U~Q4SpE2Y*f#%FortJ+MVQyOwrDuCA)r=C9+KvdRvqJ#LZ$)Q|XIgiF(IBTkg$ z(a0?24dR6&0xP)zoRX&OYO+3V_^iiR>@<@2e;SkDRm(x7+)piagsx{qm;4u)_8PW_ z8(B=(j?ZI{saPgfV5tKC@e#Oa#e_co`}gMniUy8s@^P@VERFYkbQOb`c4%aNqthFgd{2K3R9PEfqE>huWpHydE z)pS-`S(^{l%<01ahz*B$on*aBqQ&*m=ET0r^+T968OQr+Ua~gu=a!4E#HD5^OWGP88Lm;lJg=It^(2cWHWK)hQ*I%}K*jC0_H^(<4km|P0qTgEkb+c+~ z4JkWV0pLFZ)hW8TaM{Y0>ctpOSK$JS)H$^ic;@Wnp>m+W z&!@;K9B|#d8TfBa!OtbNx7}sLRM26!@h_>1p?)6BQOAF)Awp7r<9{2|rJdH?Gzjf6 zL7O>%c11V-by6$Jnu=<`^S6WF_Gr~>v$$9iA5V}xlI{glN3ZLD=R8b?f17LBLwfA+ z3H%cq6#=*wLX?2Xm=QB-W+~1-BO`X;lYdVTT`T%J6lDx&eyeq|)9dC$YR5kwwoXkF zja%iz0A+$ETjEpb13y6chy{nuV%le_cj!E3ZUh&BCO*%_a32<5q@zE+U%Cbzp=KnE zE@VUVz~t}9I0-vsjLS?5K#t2aawZLZhrU#a)qtK_GsJD zaOgy;#teYiP-_E&IzZN069i$F?FODH`JxCY8Nk1$4v~VeCaAqf0=v@S9in$!_ps7A z62xha9gmHnVMDJuc4jQJW2&}#?|@?76Stg?KA%wx?P@z-%gWE+=fvJ4B=(G;b0nH3 zV}ZShEd;a-!s6tZ#j)D3ZL{$z-0ZknszL^(1%^}4Hp~w-5$YBUD|?g%;{{4Ki*=$^ z40crC_}3KToot+4_;(^;dK(r!0DHJwr`1kuw768w0tPgb;81P~HM~}_H1r=*#Bl9n z8MT(KQgS5^KEBEXS&?PcofoYu9Kjs=R2W z@kxS;uti};yLwQM@>ND2+xZOoiRXn0V@H>1Vvdiz zsKd~t6g3k9%ayj$kj=;FNaYnvl&75`V5sP7hx*jFE4p$eD4j_@3g#|O-SJPnK)JHv zOyFPFFtpOWF=3fU7XC|J6U7-YtPmw-8ULIk^FMTMalDl-hD_qWqEO48f$?AE1#0Q> zD^TW+$-44?Y*HET6?|8UHA!j!6k|&{p(?s8CpT7%RkTw&aO4{7q9QNEhqtq@{b}F` z8v^7clfZ#ZomfM9GX85}a@jY=w>?|}Ff|Qmlfw+-h!H~9yXns)^WiR^nv5MF4Q`uQ zPZu8xY9Xu^WV-OL1z@41RX5{;i@UQP z+8V%Fj}bnfY=*S;Z_CS}x#FJ;@mfxvm9S|e8K>0YL4nxHUkYn!&?<~o26Zg_uJ|dM ziyN{hpuAG^g~!xz0FBY{u{9qS-ag^R%t*zaU*n`z7-zVi)g83$C=qqp2Bo~2tMAj? z0D;iNUfr*GtHRa`|M5H`E?Vo#Y4I1=;U)=H@1q5O@Kif?fd7cP4*WY>!hdRTjpYyg zuMqlE;rj#suxH1(C(dM_#>vGNf)z_j3YgzkyDW6nDVuhVIGtucS6%pzn`ibY3d(Ms z*cbk#%EWb-EWN>2XkIe^oA)??bbL;3J7mL?F~Q+a;noUbbcidF!(;;+8vk+@;D0vk zZv4Y|xw~6sU<_s5TH6-QMcjfvg5`vX9VFhK-}q;Pd*lir$^iMgb2N_Kagz%l_U0ib zp|OUvRN~*6>4@)ua&yiJMyKm(o-sCDBhB$?1w1Rr1n~y7Cwb=B%~eJ%7ga0yTWn9T z@bBrh5>PN&L9!irh-U9rse{v?z3j>JQ>KBca&v$B%A=*#^MnzWS6Xt! zJNqOo8!I&lK*$9P&KsuC=V|70(l~9P_uR z(ZnTw;2HQSqouqw6fg`MTJIsOQ8Fp!PG9xwBskuOdFyMDr90B^)N0IS12fH|K$>jY zJcYbnt;blHV>zx95YP}O7V{czW};tr$c&xds;l9(^_8?5v)B8@wI_=v+y}7@cFJco zv>HB@wT3Zn{Aav=KHV9KwoyI~VC3~q0E#ou<;8d+1NRGWkx2vpjb?%qZ|V^7y=ux* z1HD#alV}|z-(fimb8MUTXW+mu!?0rWYXUcLci>-{_&B71|01-vTX+0YKox{n95s!c zcd5AP4sV=QhIXlFJk_n55kpdu6`wX8f!(kA4?~_s*r3+~og=onIkUBom~Hh;YKK?j zA`sh!|7{;E26>J9%G6nMg0v!JHvR+13;*B)FD6xL!ib35mxL2};Td20^zG$c>{Eki zWw3?^$8{yIF93o-eZR~o@KvR9-IDW_Zaez~lT8y2e@nL(N*a)YTMLP6h!-E~g$XsiV!1r@nK3#YaM{ za{l`M!hfSFzc(W;{2vL}XrLL2gbcyD9TF8WGtvV2e-i(JU;Tp(h-Xok<=+@w@L^y( zbRFe`a{_wbAH(1qr`<081AmAo(f(<2-IWK{MMu)dqLTfe;6`SqS! z6TJWQ;uk|6{Ex!u=q;gR%0lHO67ClJ+xJov2sFZ^4G$$N%|fAZ%a9;6+u9(04PLaWb<=2iGx( z1tk(+)yg$t_tnIF0`J3eiWRkZ%}So(C;p}$!F&~B6k~I^vLDq8XMW~(6K2_r(k+^# zV#n$Z%8ELYDuF=hcQ-0(uTqY`wNmE9NH2)6b__AVc(Pi}ZJf0>!MqlUP5|T#>pRo0 z#SP0^aZYArzIxKKs`dQNbk zi1^)*1&wxHd_B>}xKcj;8@=cAPe}5^4!5#9o@&6;fY0ahP5zU8WuN&vkmNCj)h`)Oo40)v^ z|5rR7>g3BM(3Co{kt@o%S)AIt?$!{9m&y*Je$_i(+fHO=m{@UE6+Ul$E>ra0T-3Ud ze0x5cH_;)!ghWal5!wJZ7H(@E`lZOS=^TR!77 zS=))?Aw};a*vARlaVG<9{2!4*zy6W`K{A&1Qy%vR{)gk3*5Cug^rp0mY+Twqt{W?= zCuPTTV|SKdkvzOd+~&+jhU33yO-JA5?`DU{CHkhWY(!?@9PQ>cXO;fqkR5d_2WQEC zQu-V_cdQK^SNiJiQoC8|027J-ivV0WaL5Qo8?%-wdELa(DAmGAOq^!2&v{4uu9LVy zbetUt!1ezn#9OHS60Z*V3_Y%{*>exAcfw?f^~RZFG|7&TSkOUG#!&~X9la0!uakz6 zd0b}HIU)DT|I50ytdp0ihxApBS2pL<)~ z(K($Zum)`UujU%Q)dQGW_%F=Y9fLp?PN8@c{`0oKg&8@0Q2h1aW4rK^>hWk-qOhf9Ue|15MV* zbmn2tPFvpQ8gOh7LXwV|J%o}wu?J7ItO$N1OhcNYJFe-%!F z|CjyN`u}NWKfmRFC*T<8<3HK(3$v^y9@YGi^Cl&oc2n|X5E&v9fd$Yhe|{CR-nE9l ziPt{1?WW-g2G27DC>N;J+Ree>aSH0Z{R}0fm4kzefDrhJL#xaN@ZYg-g`+ycuGl*5 z=qBr4I-0yrtv2b`7W5{F&!?wwm5Z86UFHq2cF*Y8{`6on{7!U_GE&fa4;L(IfFtKe z!%?y^wxm}^F0PiBG)JjXm2!XQMrD>D=-iT0TKGxXS|Q{B_~bwY zEchTAS=m`rajsZ`TN-o7eJ}yN#0Evje<;PBu``$(&rT8yOFs?+#lo^ELe?_-U6xP6 z(;@wDyJ_vvV&fL$uQ+I3%iB(Kq|^LdkW`!A5)g@hj?4!81pcc+-YRq7gnqu3iRnCM zW8?oMC52;Rvj_bzH#|6;nmb1a&BKk(j+hazFnU)qxP`MdrFUyx~>wHOVRVZqwO zbU9L@b;xuwZo|hPrj+6PUfHH>h7f_GTvDf8u)IM`(IBj7RGvcS=x_WRMZ`aKif*G# zg~q?eZ^z_v1o7{<(EtjO6Pu0PCwi~y)uL$WmY*k2>`jeU`m8%lL3h4!l#~X4?zkFy zi1@ck;wa%CcE=#_>tqR3B4h6_XOc$@Htmu5AXY|NsnuEwUWx)Vv&8*@|4ID&kD~j( z7OpDs6oJ7;w0$={nH)QFNDdIc-?-G2!XO)JTr5_E31V(>c<*KbFXfjcMt_G8+h%>+ zOP?vC9pr3MXC8=1RwDpNn8>Oi4AuWg@LWB`qCIHHr6urohU<>}@5SzUWJHm?e98;U zp_#ycb5V%XR)EO4Cah6jn^@hc%>N{Ab7UDmWr@a2FT+M4?DNkBgos7WM8MB3e_#tRpS_9JKw@1MA!2bmPC-8p^$*8L8h5w1+ zce6~w93!QGyUqywcm1mWA?BK^Jhy)*Q;y6(?OY!CPamx6G$^fs{{!k?ixm(uFmL>G zq~WdXBQT~5O@?A9&g`aal@`92wiWerdZD&pVCd^Vz-at?4D;AAhx!Cnfz-dTKE!_n zXwJ@`;i zU+)dSC5{{(@0B+6`keNa9~U$#VyICO>%O}1Ul;xfPggcmQHDU+ROd9ih;rq)P!>30 zSk)aoxXS-7CYhwubt>cfHQA}=eSs3*;u`%Awk_kIT!wj9Om7aR(dwRhWIvV@&t)IJ zcli0k&44i%l-oXVc%g(i7vW%$n&gXv(k%y9siG1-;*M08nrLx)q_cx$K%HQEqM}QuO+lx*Ylc_?;BoY$WakDC%*Efm zz!n+4*Mdhcp|}DAsDIC@D}s#c^kSY};yBRZ zIGG}k8cmBmUiA<-|0*h^ed$E_(E-6QzV}hW1xub%CWp^M3k;a9i_ei`R#2YB9dZv& z>q5VgeS7tZi}pJf>m;~ii||_ju-J)Bod-c9-a+iOJu_*;b6bgedz4~|I-pkH7RGg3 zCw!hK!mG;lzVSET^2dc~1g~)zmo|lG+h3MLcZtnA)@mQ$N9S;U2GoLr*PNxoe>Ew& z+i<+x`{u%Pshxylp(Tps*M-^rVDuj@F8;Tf6xE24PjZeB_Y?n^Oqoo@<{>zASQJgn z{b*dw^NWfanfCg=oS*QGX~X;sGXb10sw$?HKRfN!(hFv+>qmbK`zL+C<$^ z&FiV%{8OmOFR;}L7^tO9I@Ysnx*e=>vCCNG`|_;`06;ktj|pc6dcd|}Nyh-=b;@IO z+qO=fZpOdk=L95E>2Qv|)^!Zo=HmQZr(o!8bdX$Vz2qP0L(H7mdD$@DA^vr_e6YY$jQ6jU*S9>Xd}abR z8Ofs>O!aq1&cT`$Fg;^^&IZOf1Tma!0Lzj0#!&nIz<=oghBfMy{|E3E>tU@5{+TOhH7GOB+fbSRXA6i3M*3cB^Ikk>{8QnO^4V-34=aOrIqGuu ziJWu(B+=z!rA=B|f0X9dTC8)C)58B%N(KJeV6-7x-JNC@%A0}zuptXXk3Mv^1*H)v z-+_&8ZKBjd;&RV_kq#CIM|DB<;CU5#jb@u*Huf8(<_yskZ2zPDADoEGNs!ZbaMU;< zUUslOs;>H9O8&rq{R97d%snVWrtO^=UStp>1y80t6$1hPpscAk{y!~Xuyq5mn#QMf zmlmg&Qbp^&=Vro*V=U!jefd0Yt+UA`foq!%>rCLkfPW2N6}%I+yYk3+eLkFgmTF?R z*@2*#qj+j`jN6Mg*j4`{DK?2%^|fp8sYI*r-)-Cl4g>$|o{;rgLnZ#{@iP89E+qcx zV(_k%sq591oTJf9spl7N4oKvwjbqmT{9J2S=6|a>JQs`9JN7c%Ao{`lg;kCGkJ0gYM!xNh^$_92$(PQ#dTuN*~qen?mOb;9t#J zDp2}4_%jZ${u}@J9bCBaZ%T`JQ5?+%_Oe>7{I6CJ#~awb6Bow+x#;`->;E~NXro{a zHr9vMJ%V>c&S@*tD){_-2b!Nx$$qCf9t)?iU}B5JU1xE@lfd}BH`t!r<{h!`I6h5m zI<7yvLEvLl;p}Hp9qCb=+desf0+APuJ=@tZKk6C0?0|sogX~WjAEaH7hT($%=UDa_ zh{2ZyRI#35PI3z?^cgpAkB!DAQ6|G}6ZiHyS^qSbtFu?4UU4s>m2M&~xN%6z7C-jd zndSh&`i~Hw#&~ii3d}Ce+%ZO>;UDHTG<hXj4nukKS>EC2%kec_+vF~&bq86($?&C;5ySqHLF*?ADX zQ+}Jdi=0wyqyqmY&5B}SK_ekt+eZ4QDQA2-MR25W-s2FCcpvS9zshX=+~9)fBpWoq zkAfW^R@+T!659DRTHh*8`XTaQhcMtvrvk_Bu`2Y#uhNV7_*|LI8_aoaX&p#8CS)I* z63}7JjYV*KEbHAt$bJv`v={5e9D}0bsFv53yg}kbsH^E$SCxV*Tbq^3=6mTvd!Os) zsy&aa%z=XX#(!6@W`ZJY)UW(g`0yJConrr1*A^aoWA4O%WO1ZVW$>1{KdM4B|5RQ` zSlIy7>fRD=i!rFml)f2x0dHSdf&ca@)~Cv$)|4xrbb-q@(G`QJp%cCK!hbFNA6>dU zZxwJ{@I~mLl!yhD@ekijtI}6dFI#34$uD83-k;^YGSalbRunSUJgmJKKBoYoe1T>0 zXXk?KrwF=-sS3Y*692m9Ovd0WK2Bu);cM|p8xZtEm5a)Xdh+1^L;ORQ#D6cIQP>I2 zq|wAfD}wO);BW3C01%H|wcD@#}MM#{!`B56H1{O~@II1h6OOWq45CZGSH z<}5*-u;lZ}b;E`KF=^z=&JE6?<+^f=qcBT|3RX+iVJ7^(l5m13@E`QL9NfX{8MmmQ zJnM!3VeP!$E-m;O>a0PUg$eHm{?CWBSCmMS_x!EqLnGd%-s?!6S>i=|Xqv@p4lutkz`26|l$Sai; zBZ1V&I9{Ilvq=JGwoCtke=-d5kLD7q^>eiwKWEVCFp8B?4?3Mu>6Z4pLGnX_QqU5K z6Lt$D-Wbl=I^z7ofB8U0yj__Vs0Jp@KS>{nf704{e=hu&@jqqshU`D_KORGVAQq;s z{9mJVR4_8}&uYzjtc5iJ^e#)5IlKco?1wbd$dfJo zZu~EsR)$#_Gly%+3_4}5spO0c|7-Xml}vPxIrRBFQdr`@jsJjY#Rwb!D@awp!w`Lu z>>vKSBfy%y_oC^_kmi)e|NIC3JMgcfH#nORVt%`@%K1$i7yj#o|B{Qw#tAz*L>CbN z|LOwK({<9uWUHrEI4=BG)T|D0_c_qhn@vy0udrxe`5*Xahr04c;eV6U#{XrI|H6L- zt1kS@BH|QN`+mh+Kk@(h)M=XTd{bxtBmG-(iX7|6C{jZQo^~zl7M;e1lg(fI?!zX{ zOJw<$vYe6(ws9_e%sjGJnH`P{d0I_jV!WJ~7&n=gH{A2_^}y6LRhh)yC9mdf0ji(p zjzs=Lv18T{f6bCwb|vh^026wD(Sbkz4BE*DkBooV{ISe{jhp*bmVc(*yshEfs87JZ z=h})TT}kGMP06a?#!aA6V`Z+}PE1zRPfc5oPp?wG+gghkM~lm(^@kf#jz$zO5~Ay< z$p6ROyZl=BZfQYdEXu-oqtKvY?5Hhc%M?))jfp*r#Fi$uiP}^D25ycLn%9mi3(yQT&fh%I#qSJ)Ea(kj`3W^JLmq+0V%51IlphOz1E!XJ8sW2E_1H6 zE0&|K0R=8oG#;++;6`lNx!M3RF=2ELcO-wBEpuw?OW1GczAW3cZoxtU&FeIy*K;+f zfxHO{Ox^)oA#Bf6C_Ye40VU}$B%KL~voC zWlP7Bwg$&Ws0IZer|yJXF){e3Zwl>LkuHkRY4$JNJ!{M5iU0#{XO>i8vvEOUu*$OdnOndcpA@hrL#ujxpaf>YLw?l}p$2 z3G#pKSFfkTTeO$s-xf-4U*KxtZK|gt4HfgAOzHR^JYNlaN#z>*qAB4r6P;=J57{M{ zCrY!yK-eT^!-(fJ{9`#du^8{<7Ip{tWK98$rC#L0B&g z5=ID9-~2%v!QW~2m*Mi*Y~ynZq}o#(4@lC#HL{_|?z0Pb7cwVd*YS0l=(ZVtw=L2P zCS#TK^Zc(UtB1CkL6?+e*>B$SI8zlS@{vW7e23RqRD>on43volo~Qgj!yVpS__+TViDLW&b)-v>2l=eGfPc#yrB8;m zrwsqep#{&kUNH@K!z5M4^_fq;BKO^*-Qw)C^^1lsQ;an~3j2-21ONR}#bPD^hxpHB zyNVDon{)^M6=OIj%+5Tow)iX0#HbRg1YMBEq>6;We_H+*WeWd^ltXqN43D47^Ht1O zngsKIEeqMN8KTb55-$Rosc8uhkmQKG#C^a&8)dAs@b4@~&uW*IPJHzM8>Yw7*fMeM zWd{U`#nZx4q-A{mR;wT1XQzd*Vh2gV<8}(_Jn?+szn99~ny?YCa1JyP_>18`9`HY{ z8}Z+wn$~GF>l-0WIT>QvFYxa*oE|USU7YMy=T3%X106_h3Ilv8XGn5`HSN@*riJP_ zMfn#8&;6p7WVIR3ox7=Fced@_g6O!|cb{TVYVXeuNfq121ru68aPSEtNZJDuf}e4U zJ+82=MQUT6)~8+^EMP)fC&5K`U!x-jEdvQg2Sw^(XI5;#MByS;IG9g~10B2)5e9G} zEOg+`Se0vO7(qEoySrttz^-?$ffKxK+)}en)Z(8*;FS$zPk6=dHXr%=0!&n!?Hw|%d zQD(6}mmK^@$fm)-WqyCXJQ@jNL0&nxkD3O(b7=>`xT=;esf|kOB(O|;$5tpt&u! zoX~wv4^i|HQR#QH%~p0NtNbiGdl3dbQA>$sa$UROAgx#Z5(jk@Y!8+;eCfhQuJ8z! zCr!x!LJ=0DX5+us;{1pO@Q>Qz^>RkyfMu0LZ(proyUsKj8_($kSvwIVV|$(8>&|Pn z@n5pC#l+ajhHSl1c6!esZp9h!P^eD z{La|y0KnIN^zttrhdYP~N#%mHLL|fSZ+0Yx%m)=hFZf9V;|L+5^_gqD9IUX%s_>*{ zcWXPbnJ8Xn;KJI5EWhfzjw@ImfeWP{3>6x@_l|uY#%31qke1}wwIj)X#mndJ~SLZyFt z06G2*6KVM~>rmc+HkwF3TtDaw;qhQI&;K<(as0Plx7~W6!^9(>BnOFNBQrp`vQ?6v zEqX?*ZdH~v;EdUZ*hU${zZ23Bgz{i%KO5?W;Xl*x@4=RtdE!4j0I&|%Oh)+4n6>3D z;veMU_#Z_;E06#J1cq1vxp$)H>s%nEmdyZS@`LWS0*Ni|V*rnx0rEKTKPJu$Tg~wA zp?cz95*1c<{MYR;YBM?&TWoHIoMEwv3?f_9%(@Qz=Yjton&Dx#dceObOuouaQ(g4f zm0E24_m69@1OI#m{Ie2p{GXO>vlb>Q$&Q3f zf&V1_OG@*&_8)kHqWPethFlH*vkqGhD?S(g$5NYcnFMB`IEPYduDBcEJ<4iiS`kOp z=ejE%mM|&1k6o)ygp6&lbca#@=J`KQ{Nu&hh2n@~)1*v)2`0|1hf`Au^m)c-gh?3V z2kRGur|xxi)51okL5)F^kODTi<^MjJjfxG3gV^^b3+hw8Z|A&k4VL07x8A}(r=x`s zB>qitYC-Z{v?{yZ?F*ZM^b1BB4qU*)UWmBqulA~C_#Q_AQdgbQhKA|$g6590JJf^Adi@;5IwL#*n7lpZafS-ix=zM1xirHL%&j|) zV^KK&!Ry_P;}*#|7Dw=O4M2L`lay*=`BkGG?%ozg?==HfFAZhe!nCg$kzVY@lE=au zHvE~wXnZsH?;yD`*Hov%zemsH6+XkzMs^Wjk9`kv%=6hMgqpZrci19%UdesoKMXgl zL5&ogALwgSr(-As^Yx}I)0lVIe)}J;-(6x(Lyqkl6KOSKlwo0zFnW-Fy!upEKwUQe z)i~ypEpf>MT#t=9wvSX_M!^;&k^_#eH*kgZbAox>R%`WE~jw>g!7 zfRGC~#@nb$joeQ5YvmsKMXcUgYBhfsa=*nXY^P=L;i|CRn|Fr0W=$?m^-%)_IR)|d zfPd0ou7)@~|EI^hzo*i3@dj3A{JVtx2Is&g#WbZWZWgioJSTU;9@Mo-o?pkOa=zEgK0jMv;80IwPb|Qr!m81 z7t?c{L|^7ZfN-}`JZc@)T7!QgO=li5S7^RXV`1}m)k-n8)8qofKLz%t)-A)+kD@ub zXXe96IawwO_=-e-D7DSSLT<{#5k~{6}yJ;4D~}E4Zd( z-hq5X?bI~))uZCM=|b`|?2fh-Ms#D7Qoz$OWq4~=m}YO5Cn2Wczi9*p>iYl0e?H(p ziT?=Dfx8NkS3d^+9d;}7F- zCFN1P@JBu%B2WC!aiKg`q+|~4ggN3LGM6ior{G(`GW>_(zyEm?{|CHDP8leqg$oA2 z&Fm9)nEmBIjz#38f9zlEhRdU?P2Tu_4gQaz*HUxp|5=6^DW?B#kw(Yd>9^m@(%j0H zX8KBU1PEzKKr`$Vvl_vE5nqEvIb10NP-@+5BVFtZE` zqEploPk@yWZIo$Ex$`;W+iMtIBzb%MHZQ;6s=|dnPQ?k0FI% zce!WukbY(Z^H&0uhrf-NVGG!19al$(30nAeweYAf)p+x`*(WoF?T#B|vC!|x-)U1Avkx^Ui{0#8wwlx{J@8BvZwGZwW_ywLR!4&bo7@z4a|I=?wO zVtov+%7V`B@MS0%BX#OY=|J+2{mA2K(med7aT<@0DOy7Vf{&Rd35W0x@T0Mr4&@s7 z6q;oBVc^Pu;eXvJyX1Vv|7+03183-!TVvU{w=4{k{myj%Uf&@e6M4*=%1p+{mxQlC z__V)r)(jwn10?&30s56u4?QwDoD0^6bc%3T!!ZtI=47F8?jk&$%T!`<5zI|?poSVt z-j1QNeyff(YkKOggVW=;eRsW&ug|cEj6)~9{~G+0OooOTpFBSC)hkXwvH3UxsGk}LAnEkOB{W>xL|F5Zub)!tpo$}Zp z9HP7CJzU{Gzo6sIK+s=!J{IcypFOBY3<>{v;6HXrk-lbc_huW28o|jqX&`$^GJ52} zP%nNTM6TDT?~)1neo$5b)+b@8KyDm?lZ%WncGB70*SwYi2Eyy3e%hQpHIB$MfPKovd0cP0BGledX;*F{Ygf&FrP6Z_M|Hi_B7~y^1EEIxO zhiKr)Ie=W6TSzx@MBpaxbzqV=7XCTt$OyM%Zrx$~H9b^fMsTH*6UIU*P4s$A^I1z% zoWHQd1T^P`Q!8{#kjWAuFoYX_5Hzu^w!+l#Z$hJ4KB9%G$F>aOzaH^_oi_yme0$;G z{jQxg+6$}yXQR$8@}T5iUDWW>yGhg+>K8>+PVg4*n1X$^!EgiXR1d`b5%^Dpo8do* z|6KT2F*A0g{{s0RGk=Eq-47F$OrX%Hxb!+F`1K&HxZC)Y|pUP9$IlN|$q zfS+zmbHl&AxU^hxJNU=uIBB558WXO4skk;Z#-GJs`U$@xgrbClacMd&Poh3edpR)l z7ydV2wJ1mbKmR+k3ih7R_hk(KVfg>vgHg-s)%i+?fdCA9hO{95XEFBwRm@?uC6_*DOmK{VE&QC1MyBk^8_ z>zftxwHU877zvFI2)3_*8CxXhrnyNl+}pX zE72s)nwhjnFbZGo(Km+%47s#fR8I%W@Lw9h1c!6UT0-*lEH0M2T0Z?qP-?vt2@%Io zVVqVR3}z1{9RHc6#^c(+@b3$UVcmx4s-2pEGiMFPifp&NfTS>?XzGUe3gI8I?%K4ZN6^~fFCHxQQ!ZK_u{6ip`oRM6$BRa?R zX;OuG|FTtB{&)N*y<@w+Y^H&8Aa5{}%=5C{b~ISf76zuI*H8Yhz=fK`f8&JC-KI&! zk%yAFDG_I$4NQd5fm6WP#4%NKEAGr{#&_!&0Vclp00zNf!*l(@-bEw@w5U zi?N!9p=)`g%BoFBqjRtlaKldAP+fA9(Bkrhkuv5HgEez8=0UW+*)9(JYpuW>1DV4T zX)QYq{-@^3ktAu{3Qx>EiLt>7TsYgf&u;iHHPT}85Hd`aLj50<1pB%j(oVNW9=~)h zvO>zhpcpJ|h`c`mt&0f}7*H8MC^TdfS+^i2BHawbF_z0~9Je5s0sF52sWGd151=&> z^Izc~Uv0spx@yghe>N}!F0M6K;AHI(8IF8wKrs?fNW=e}+HV{F=k5gN|Bhj>!GkT} zHuea@zii-K0rk@4f$;rX8UBM9bq>iS|9Kh!2w_vjno$9rK61y>$-|ZP#vT9IdR6X> zKHq!c|8u~*4OdA0ycTdIm5u+Pf-pcycoTy+j6v_nJc8R)vQ-WLedmN7QgA*vcb`d_ zA;cs8tL*A-F}gRr*FkaIoof#B+MIkKzDC@d@p_cBMe^kzOqA9TG6fC(eFi@}zFvd> z2-7(tY)G2)#tJ>+A1OQ}gX3R`JKP?E+Pj|Tf14ZN`EB zH@MdpM$s=P1&SP)9a-)mw3(Et2+g$-qE-C2rbN<0uNjnXd!iByCN*N}_rYjEt~ zY@VO4hQ9#!Lkbr)~v@(rthwUt^=YDNULO<`8@3S zO*th*GPcH@$upGnM>|bynNW-eVg{~hUzj;|Ow}s28-S2VecU@&f(CgPW6VB@bH#p% z8&yCqFvFM`xcH%1&1o#$82x#J#7BPZ)m9+kyIuKkh*cKj!HIcHjOG2}rKKj;ym?gE z=}COQ!z@w$l?Dpvgx%A9RtNrR25g>l3@+*qZ*r|ehRBuhX5Cu9vH-(pgU8i9%qmNg zGT2~Yj7w^a$W`CY1*^$tMZ31>ee6qDTVcm^j(BCHpBpShTW9==#?9mmY*cl;cm+;%7!pT02XifVbhUZJW(DejJ;Vbw=h?-w~w|< zA^G$P|ICy8rXbdAbNmeLd~K3$Fg$^O`i7EoGCu$L&|Xc3>b>AG(}tDlkQ{Q5?AzWA zs~PglfakqJg&}H2Tee_M%JeGAY#v7%^BI)i(HYAB1-qw|EYJVxO++#Rs)PN8|G-+* z1OqXOMZcA_&2sz?o@Q?Ki2o%1L%g#vKNd%pMI`_$OreDtVSieUMV#KS{mfHiv+DwP zSeT$h*lY)o^9|v@FXnGt6zmzej(=wC>ldw2MgfW`z5@KE z@s$OoQVGK#gXyss$)$zk|4`x8<XCyIv1B%c-Pn@`|5CjMK!MnI{Nw!wIWTOp z82;OMz<-~HP1kALm&AV^T{0SHDJlHtTo@aeE?euFUxSqm*pG^D(UW}pK8kr z)~&r=G5?eG2ZzP#8Aq0NkcMK=e&7&u}Yo+s+5lr#I zg;AC%8Yliyq$eadnPTo1&t32)GImEm<}C9C{$2Q${#pO0dpczEI9@Muk;P zm3+p(q=4DFW6yP$=b;l0jg9|`9|Qkt^_BnSd+v)Hbl9N)DQWW3zoLvy7FPdfSUgZT z?1ygIb*NJKxw0iWnt1QE_TaF}JzW!%qT>zi$P@pGf8xkjkq0m{ZQootUrYn3ZV3<) zy%ZOcH@%w0l0_j6qmzVIhP~q-D!jsmLxWr{R38W4eSnPv48I=j=8VL+9BEZt3a#=1ScK(NAx$*xw=A}{46Z!J%rEU;%eoW)^KpfQq!Tgo+v+l5ehn39!#F)wRuAD5U3g_u^X%{B=Eo@q$TpCf zdtkdX``V-GRr?s+t$_wR8`(aHWSnl6vHEZQtdnvC5t-b?+giPavSv0Skx zMb0eCbQ}LOZo|nO8UX(ST#=udIn(s?z5-V_AY3+JX1S`uD25ZC;;NPPIr*QEHjOub902_Kj}G^ zfVmch&NG9rT2tB)==yblVX@3u@BF`-Rp9O6>rAXo2-!|~t~V9_6Zn^{68y=4h=a(+ zP-T6U?K2mF9z7{BU*8uEYAR+PmY;b5!xREg{BHYzB~ zGL+;0z@>7M8mvn-Piil{D)AHD2;@@>uRCW3!-0 zt}~NOR^UcKGgsk)vnJHi{Uj`fW)yrG!byo{S+B^!UNGJ zHaJWZKN9~*${k;@PKb3Ecm&)w22C{1B!%lxY$r=6FYcA3IzYmLYz8>AX6}~R@~cNW ztU3b2Ra}~oNpH{QNt(GzHp$t30z!VLoiMXA{9BP_s$zc}{OYgMyapAn#KbJ|;j@^bF6G>i-E$TOwjbW$5ybY3TU(D4Rp)j_o>-?sk!gh&5tqK0G+`RaoNAh+60oa8-cW;AZY_SOhi#g-Z!% zt()PneKC?%E`^=u!A<;2*8oEf{yR|DcDdDw@Cu~jVAnw2f@V|a5B@_P#kG`D97TS> zf0zhGqb{E6rP27Mvs9WPUDBOjCaRL8T5jaevGa+or@~mzOF|cI%F@(|%P0%ajeqAO zy<(iKxR1flVV7<$M0}a$Vm(Sjy*V>?Xc^~@ z|A@cK3@_Sn5z?I6=6D72812*ATERMb&v9fq0s z(aAW-sSo!n>y--Ccb^~c*3n}#$6m-rc7=FEAxA`C1Yk?P*sqtV8J{sDARd@O+A^g& z2!rg&9DR%mdg!)@Lu6z8&>rS3b@O7zQB1XwQg>gEugXKOmIp5l5*|R!Rw73d^yjSC zOE$+H(q>Z(p;gv03(bJW^qE6Mz8G#5u9}7_lLP;P5%&Rb56^|`DH?h)UUO#!9S!_r zz><);2u#$Y-tm1?L8dES}+tUA~qOAq&PkINwEYA13vzYQjEf^~* z$f4HG2&e0@UYHmQ48Wm#!kFPTspSbH)!>DoShi7$L_LATRcT60>Jo=A{xy`oHs$yu zjkd%~pO1F6As*XR+S)t{Io=@y-cPidkZQe5)3uOrVj3^tD@0Y}nWDsLInIUy_Diby z$0}^M8v-zU!8l{9k}9@gXW}_T!}g5TJi|cP66@DesK8C-Jh}$A7`}B)v{4h2O}(>A zD*_)~2+_ZXe>+oylB5SpGicNq6IGyX>srlF9?gpx<}4hNOUXdcD2WpP=>X5TM_z>+ z2KoO!8woWz7dD>ZFn)X}=%*kaYPZY>w z7dDr`zs063`oaIZmS+A_iP9{d%jWlx!=0tAQ`&XM{tnNB>E}$ffd4XC@m_?8Hx2(| zi~x_6roglwBv@FVbq^ORE+b}wx=*PwXig}+eK1MwEQwVx0?tuScd(v>sh%nEOCFmI{>wBw<>(iRGJ7zsvB5gKOs<^v9p=EfesHG6xF11~h~rFQ za2(doA&kV;lb#CAMU*Pp9k0?hhW~|)&(ME9okaYjxl}-1!`D#-jG_TQ$o-On7b1z7 zh5!C{<3G$cY4~>oBRd0ZxtM-g>`VNEHOfro_}8lM>pSuW)fJZi1rP}SLO^iExo|pG z+%*gHKJK6zrchXXMkAvxnyu^ei4k_Za(o{-kpVd6CIs8O;O83YE=FOd!g{dw5dwBe z_EN%ssNu%18(PvUG{ndA-2n0q-dW4(3WL{6n>WLazTPx0yX=cmw+8@;;z=aZGEU4C zy7BA1*NaWXUMubLTEK>vd@l+KQ_cFg7)4iN_~!;xT-B34vj>gvvE%!le4gn9a~+Rq z77Iw`RJVUz-))ZaJ~2tN;Rgva0Yv;-%C`LUIi;w;Ouf*kx&J<rgR}!)2^vKm(Nzq2h3xjWWhpZV7>j74RZQ*x2pk>a@3xj{& zohJP6&`%g8=JE>hU-1S05f(2%aw>91vVZTh$*Mc#A~?h}t8Bf>Qh6!x3Zk@_3H=0@ z2o6d=Ki>T4#FPLV|1LnGPJkS7d!T*KDFFQ9!vMKsqcIyZ>?CHILzEZ^2->H=%bN{E zPQv6xh6|!IfJ5vq3B&HFf6%qh5i$7CY;2kk%(IK|KLiwxZTtlO1KQ>T{zK6hFi>cf@>x= zLOfN3o^s|=9jNY9GmCPqP5L>y>rCt$kk`-ULCk4kDQz0a)u@Cl0i#5)4{)Oiuw|mE z$;0%(_3O<+|m!YoZ5>7S;(T~k!J7RF2#~V|9!~ZfeIZgQ`D2KWhVV9=hE0ef7 zX9)k7!(QblS}9O=%^qAl__x3f@gXpiV~Z{cJPzlMvT|IOD+{5@?wd$*7Zh21p1fn4 zel9e6*jsgg;=<~@QC-9O&s{h!*u*Y4@L+(jth^i)$VcgP%G$$%1Bw?KGl0t*>yeiS z2QrZ7{|Gb@=h}82@Ly=INb{08gn#P!g#W4j0(s}2l~B!?4z_QGm8rMlN27iWKM>2Mz#^BVWgc<3A@6mGGbGH!qw)QG9tC?1-o6LF2?b0B-od z*X>0U;}slU;-0R5(D%zyhX1N<+Oba}{|lYqz#=Kn-HRH!#iNkV&CGgVrkXaRM-K5r9;=lc3tP{Oum^K-tljSrKU-(V%8(lW-Q|PKb_iDLNb>s|G&6T4WL6| z1s^V<3sYU)hp~2oF8O+eJh7=lp79UnNR!A_$(8>lZXp9~@xKB%N$JgF@qYzCt` z{+U;T`QBI&8_)lcQa5LK78~!b{BHs3>WqL@JJ{rt*}f+39u7(7<$$Yf-vX?|@IORN zEt2_vG)@A*9>jl&vyd;C1ni`mTp|3U|L>vhy_$*d;9vGiHf3X&Z}lWU*A|o|_q~>} zp6B^I!zu6DkIt{Xh{0pdQ^|ilUO@{ZnUo8MpEbkh#NEKLV9d(oGN9k_8@?L^d5KYi zpI6m_CM5#`GI$YeUDCLDx#=Am5?f5wJ$a6nxH~t@_MP|S6Uw%xDOI_nW~PgYw4wGfS2yQ5I)U3rW0cC(%woOP?u7wbVy&KA z+VK2({(6~hdN0&bN#Y{#6F%=a*N_am^=m#53RtF#KwK24zUTrA1Y@_BEuqf{lFK&M zfpQcwTtxYB5diyXB7>CCUW_GfCxL4z^L4lv10^SZPhV4S*w>Nl^YgwO3!CfldUco> z!75jb)6t*6hN(o1+?iN)IC+K(@}2biJbxLcI#dtoS&U4Ll00?|-cJ7?n0gnQY-AV| zbc6Vsq`>6`8JF)cq9inynxRNSj&hgMJCm30_zzMDH&Wu(*Krs(rHQd-mH;U~rojX? z?i1IhUEGbd&BOZN?E^dN6dEF{)!Jzv%F16`B1K~pRGdGLva2|tg67h-1H zkb{1G4aVHveAvAVLmb!^`bw>J{jj?**-F7WfNx5Z7Y!F-5ZQHQH0BWJw_b^lmxpKE z@$WWV!yn&!qhxc!P_atJn^7S?;;C|dUC!th7NWraT<{{HP`iCZ@KYgXa9o%KgaFQi?4dM&Xd6+6j` zwMnuYif9u|ucbPh)We7}S*J{GzqkKDX|g-7r64rqyAiPHXgsrQ26q=p?g?XXk_W$N=vYBJ+fc{Nt2vua&xxQg z{FlQa(IZ=uhNu~ie?|1<^c~-U7#*0z1WnSbBcJwifmrxM85s%Tc;bt20xvsiAe!r= zm(%ZlS5sD|PU0jM0Ezl6C8^oa_-U}{IuifuH57EQ)c%#p)^^!_K5BiyLYq$FIS0zu+k6e};>dNxMy@?D4#D#D z0~0_R!-lBm+f@)WVm&AR))Z^x=Rw>V z+KlA*MIQl&Qpski4F3n{C`b8F?fj~Umnt(8>?9yVO7J zk4Vl~mNhwKR{ofwjyp~)3F9!VH~xzP3ID<5>=Wy1h*+q}CvjZr(mJ4&G{~m{7a1Ql zfmBV-5s>`TS&&0U4$6rC#-{Zu#WV+-PJtG- zDRA{}P2;6Jyzw7ddfriK_!}+{LF&N&Y+Z})L+;wY&%ZS}A}uza9;qgw;Q~vCp}*70 zOH#0rD-1xBls#wckl}w!tEHhu8vdv6Qt%2sdq}iskQ1u-e6-GU8hy!&1%_MVAGO$i zYI^Xw7@$;efWu;6K;a$E%wtiWI9_zk>K|wSBZDjF&um13F_9lSu{OBVT`btPez9k1X5QiNHDP>uT4==Hnw1^Ff|AHyg0Q;Q>SPi z6#L1yS+bl(dC`QuE8;un9K4XQe=YnQe+-G&k^f8NlNvhCvS}8GJx&xZ;U=-SL^_~%PGLp`t+3b1fCGB1uHk@+W+(4 z8=pZBeiAa}B)NbcAZ)M8sSam%NN>y+4$4U5 zvAVua1R-0rP8$CE7vmx5bKoCbtv9{=k2rXvWUeZ+h~+0d!QNOA3QA)n5Vvsv`oxyQ zWOg+CbG2HlsCe!o4rPEbc8GeP@gL|pY7f?3R4f!r|Fq}Ca+PxP9wJ3j-qAX(qXR!;y|i6YTeFypxm&NTHpA)pto%d^8(H4T8;Hcw zdnoY;5SplcMyxL?$Q3aTiLl{sz_%mCkfnUL9=Myj0|&gymGX9RkhfJ$F;E=nD>jU^ z%0kXQL1^ps8iiy%=HzpT8C!_nX|kd?JZLT06s}(22ON2oX4XvGk3&Rl-*SP-yAU({ zC*o%A`fQ`_NOud-(hS?Q7Z@9M25rGV&{tB@;@5k*S$X7ZOMOs}pAD!MrgwK~} zxeh#m&_;;+F-MLBIKz1cTl@FhdyL z#d?kZuI6T_q}h|{Ytwl+A}phPld#I9>|3RK8i=axqt zLf_snHGHPdZvUO>m^u|Z2&Ol9*_Joo?1#W+VM)~<7S znU?r>vK|&!d8MFMvl7a|k|{uIiB3GiM?%j16GIU3j{k7{`=i49m3SRI8-W>Z4xD@F zM-k)e{2#2z=S9pt8EZ)^pXS&d@#1k% zLS|UoH~1e}cqc9JkK9BdYK~(c|0kZ*V~KncI%X zurO`>JF#%laToE=z20dTz>q3d(V&nM{ylYIP3HU>J1|~OoY23Sp8uWJfsFZO<6mQ^ zR7{r5m@El8JBQ&vSR~FF!6vl`qKL))`dMc`Im_GL3;(_j1_4Da6LqR08CBiNKEO9ZT*sm;m#X{0@r=%* z9Qz=ZPCJcoQBOoi0A1^&!cY8?rhJu$7)Q}z#9sKcTp0c*_U?g3{Kp=KFsmrPSO_kq zQuY7BzhPN>8U9n9I0jrw9CYb%ess<-1y1xZ=_EZbtU5f0(ez!S!awB9G!VtAHQ)^y z0#_uy!hhBV3j(Fw>{0^JE)I{Uuv4@sMwqMJD2D&K;lGah|HS|BRq?x*+ZxW33;%8v zaNXFV0J&lg8*}7bg!mf&H<_!pyk$G83NSv;3a6cjmC!On)r5JAPO3Zp%c;0!1~-yg zsYKdrXk9sI`)|K%42SN?CXef!`0b4x_p$DC&` zZ}fS`uixU)U!Q=mFx%p;mAMnMuwYlTtK!9h5lFdBATiGodHXKy;DFTc;9NsJalim% zbp;mD6n4y4R%v8tC_IBcnl7ARQrUIkAW&4>i32~WGp?KlnuA@;_OU+>i?U=gVZ(FG z)=-jwFTZmwLb%feY#QYw4R9CjT8kr=4Q3PAyW;+^VMfse0j1HzhFNY8byJ+lK?_h? znfINI&8T)cH=p>l$mW{oVhxy%*ol=ohH{fAGbc9>t95>9sbLVKo!2ed0DtMtSHDns zdMiq;Ja}Y^gVkK_A=lZ-B>16;g-y1azOak$;Gb3xK0!f(bCM*!{bNRZl{Qm;y?r$Q z;f~7iS?9tg5_(t{vGL#Uq51A(`fK|+BVGF=xd!uHFd4)l=$57*Z#NuQoN!AUBESwp z3sljX%}#cSspU~Ao5*%HpbXQo-a)v8!WNU zz?v4{wlSa6{`XuP5>?fFNsN6vyTQA4u+D}AXDd6fvV8`CWaVyr)Lgv!uOSYG zfS2u)@o(clZUhjNNU4=gWrpydaSRH3?OAQ^-l!l?qfF5W&l)_Y(kK24*tx}G_`uSv7Invexl$7{oJO=CZy=is=;NDoZ|Ml`6UKWH z9!G($%ODr~f>=(9TxESEJy1_DZxbS}Co|n`QZF25OdEOGJUg=7UkKAnKHnBijaxsC_{0jm0=o zbqo{@>s!Ia{elMo`^=npA3Ct&gIKGhGhfBYO60lr75*7-5zPNbLK-lU5H+-z_K&CB z!MgCD2mVvG1Coo!j&6BdavV}bn$#CiGF)2_LkTarhX&d~`prqXWJZQpP=yCXFHN*nF!@Sl#oY>->-3RyiSe(O8drGL+J-W(H_78hE~>mt?~Eyoj5!CF7Ng+X7HkL*)#`bb@Wy*n_HeeksF$-to_U z;t~G=(hW56rO22@dH^4B!+#lHhm3a&l@|U(xU}%R7p$|(IIk6|DovhVo=7IdXw}#; zL*t)3F%+Z-68{lz)w|u@U+u#fBat!={e{RS#K$@ck`l1Zw@&?y|BU^^a{YdP7^~MC4 zY9xie83;HTTXD1k;3x=Z5Vl%l@%1e01`3aubex7_+-wp`UsJ##@0H>w&4Gbp5jL)H zwZ4P@C7p0Q&e2lFN3L)GcG-`+Fe0Kjc18gsOZg*fv+U>DqAj`6`}DmlMwE#)Kb zk%xYzD4kfbbC}88Sdp^R}kNgyw9`hF6OMpU5OATe)?|a2bfdVn4xlBACJZxnFlX1U;^n(^99w1dDKAj z|5r>?&2#7?*{E~ctC=F=p($=rOU@j_yk4u()g#NZ1z+U+#D-!au}ecazFxy+khE}Y z#Ku3t)=RHJrklix%9=s~aoBeNcWfk!i1EYqc(1I^DZ=F4+ME`H zZyNu2*q6#igd%D1uQM=|Rllo?IjQ_#s|Td(hkmPv^dQlVOAZ5GELwN|XS}=@J?G$J zuQkWxduwTumfK80{A)Uk_o<)DGL;tfq~GF@xtV(M3Ri+CFXEq|sr{8W{0f-)mI+e8 z(F21dbg@>@U^3Nb%HVS2ZF@MB^o=cch0sGnRk8W2z!lT5NEZCV++YF6l)vUQ5ga6^ zrmyCdh}D~z&75_Qh2 zxk04;5xu;*Vv!Cn1UM%5qr&q4>gz23mz&As#qz()f!Z&{?K6Za6x-fm=v)i~UkEbG zhms)XO!a{~kZX)TYvvS7Xrmo5{ zeii@eTLJ$;Fc@JH|6%yYx@qnAsF8kSMc91{tTI*<6-`nx|1A8U$KFVRTxNFJ)hg~# zsa%9b1)V{1#h2OA>;KtgC>4_UC#%dtCD7*@3?{6?z#Sjtc^3<;;!6oQRw`!+Ak77ijA`ay~#<(nFP!K7hOU-(z_jRVRq1^{E@ z2Vwod|2Xh<6q$(DgJK}G;XhVj10Q=RPw2!3Oo4Yd{>Qb_!K`kD46KZ#84(Bmr_x|~ zh46^`#6Gx}1$8iHA~|Rj{$FObl86?P2mXULIVd%7aRTQh31E{z2_&f<_aQs~JO0CC z#%#{}$arB)u@P53nRCh0L18b*Ze6vmGK@LTEH$<)A z56istAo08Zh$gwAn&O>2{o;MZQvtB@|8epw7ubz#DB1)5E&sD*NX!4?Gd~aZBUccA z@Boj(5h@4LaTx~iyy1UrR4d4_2<0F|3UDg2Ac0*tKZyUqbuBxU!#$RiLHxhL6+ymB zmDfuC_-ErkkcD_55dYach{c`o-}W!CTW@%VN#BOGl z2$o{VA$`q%UEG4)nM;p)#ipRbr%6Z$9n0y~ijiDpNxkH?K*qv8#rTJE#{~g~bnz}V zD{{<2(zO&%$JI781G-4J9OhRd%{_<*CiHESOD21*+R!F`rl%YT%b3f#595;iHN#6d z0cE)s8w=O`47-}e2BENL$}dU>b0MXK#*Xc>(l}&^UK0LH%Fi@7LGE(mBFxZ<-x4JL zy$0}RshA5ddBW=q@=08?8jiqSWASnsry+mWU}LXD4NP4&ImjoRB9?l077uV2dko$LaPv4+8!Nh2=&+r|uBtHbbGy9GlzmA)oPGW2$4oV637)Q2#} zQutCn8i6KtNaliW_?QecQ^nIAv|1bXJn?TW8400E$urZ}h*dR>91%V&BqfAwSd0zR zZbDJSFo{R<4BsP;ISo_X_WwJQ^5ApF;K)_#ipwgAVx!*|IjX|$NHYjBH&!SqRHAw$ z;7XCHaMd04s6$qqz^EE##p~tf%Au@l!fCDaI<`jN;xISD96Qr6=bQkqU;l&ki#Z0a z`2zoFAlz?~A@tQatM17tD-vl3$MwT75c2zBgp>;A@Ejzw$`C!!=KyTvcKGzcjlb-D zAMhWC-TLcmzP_B zFluV2nCl|WK%&~`ES|%3No_D|w@R-YSyqH7X_?P^}gV;g||GpUG zF1hd9x_v7Y&e)!_V7G2hi$l}Clr>?#AC3R^ zO|9VYo;|phek}{3U}j@414Fw_#||TJAm4V`Vz0-c-Rw5UE&MAcA^GETlV|z&z<*7P$I{fezhns%t%zeinP8^v+{lT-R%=Ic)KJP@GA|4}B zaio9YpP44=2nulvkrVWA4sYkee{nFz{y!K{^pj*{e0pXWm4*MwlT4`u%On2Z@iJ@h z9YgqKP-oaoG0^qA=(xSM-35x5KkvK@6u9FuHE3=(5l+J!cy-jzGex#gHZAVqapk%T zXUr2)ltWM5O*?Lx`+%}srJCCcdy5{B`-#-0=zlg9d4L4QgriGI61UctVq)t&Mwokh zXOOCZ?KNVC%=zjM!XI9&IbY!OAwW4ev}%MBOs1D2I>yG2L!`(rX^laL&d9dH4MQi` zvWcK#@_6s78($9jkfnP4sSRC5SwI8W@hj^`kRM^wN;kR8f95aP8*z|5O;a>y@R-zd zv#wbZjb>r3;l7;zf_EZwKr?Zk+JEtD@%z^CabZ!}9u!HO<&pFp03KBwz-9)O;W36# zt@Hir)S2{#^ky>X1d8|!a*!*D{it;G3XUKDp3H;%B-vu3VQp3A$~(NHTfkQ({e3>>0LpV{Af zJ3EHKW8dxD?oo~zdU?Ukg?th|EX+N8pJA|g+3~MoXyUHCQjT4!1ecD0{Swt<(Fb`u zqi?&+$Xa(U)#_Rc&Z(gyCPvAai;vxgyyjVRN~%N}H!(Ir3uBYL4TwEGdr|Q9$XgI(`pvLI+p1LUBUtJ!?+=0QNKN5-d+E3F5S^pGQCl0Gl6(B$MTq|W4p^X~s< zqju>s4s3uFK6l$&hfuVAxkzK!!M{b2WbR|YTd)(IXZVjh-0Z1gnP8?bEH~A{|MWe1 z`kMJ$pE}^r6an1inU`1okCl&PcQyQS|H+{!2E`MF06Fk~=iWhJuvyAX6P3m?4H|N} z7l{Zrf}l;`&m;|#f{-oBrw22jf(9lluWZB(|M7tT7ZN$PUGZ`nqSQ!MsJY${Dms+< zsZ^VS9Mcfl((oUFB1^{0h5t^kW%y4A)%BP=aINeJb5&|mx)560K1@!k6&!XZ>|eY* z6R4Df_%H99DP5{JEDdWLLHgaKg8gR;NDaY~igq2rztI=WTBtGF&0HQ)xc0#>nHF4_ z304=K1NCkS08Yn$%QS~XF5KhiGyV8%D`*3UCU>OZQ zBKRo@>;IS%IwRMf9BO@Dp9>lQ>-IBUV)zfkf5h_K1O9P>MN&u3RQ`sfAkSwK|Fs(V z-gi8T2^SadXcv|vyhnM0^hhxvLC27}FO0AWMMM3Sd90ABm^b_n?)zvOW`cg<-#rmQh~M%;TRKxl6k>ySx@pA%IjN~T9g}0e zb)H&ea+>gO2#s7cYBLz_QNR%VR>XN7_>YZ$DCyVv0{J-n;dhIq$fcK5GQ>~TG3@_i zve3#wX=i2nHgz`Py%sK(I{wAM0Nu6HE0gF7_p@si2mV78qJ#SM_w@<>mcg97>WMTz zB)$ru-w|Wt_hpB^Ln?C*ggdxjrDGzt$R_%A1U@-}I8}p5)ysL6LErY&=2r}qV;O_H zn4vQU-O(KqAw)W`Tk6IZsE;gjc$LF}V`F+^XLLazx%3e$@#!TFlE>#A;v94;1r>iZ zy!)(zY%ToV+!6SMRC$i1x+n7wm#4nI1c8|>yw`<-v01G68qc(xZSz{?wEQqQ!!ZGS zYoUOh)4)-mo6q82qPJ}*Lu_(xo|>Vv4><6jaWLhAJ|`x z&bWmTdlXp#n|fi-o)JRUR6?{>(Jv#U(ayqupezt?9{4}}ZocuD;KiAh8z$KuL0F@S zAD7e2zQ`xbjcMXT+<{CgE)K($CoHccYfc{fUF+m~;UDfC8(?k#*-!|WPTH%_K~1J( zPRz97E6BeUMxLdyi98Qt56l0N z?}2miUM@bWg8%?1Tq~s@v9C6>MT0Vslgka25uk2%M!FF141{LwoG{||QFHIhnV7Qp(_&<^eK6vF{z0C_C zX~jF1JkVSYwK21XIbl6-Fj6AIgHWAIJGi1eh7(4)KPH_L|LC&H{R|OuRw4ewBX8*x z9%N-bnO2qhv}ujLWs~8ppM@3i&&BZ63jIk&LkydHQ7EVKKNCc*-CBlOFqb@f%j85e z1~b{zqSo(WgR#TQy8&Q94OcMjS&&RBnjpzM@IPy2#*Ty$(eFNge3piPsB=AMbRm5% z{G)(My9s6b?d|qHemGe9-=i%~{7-h~-pK#uFU{{5B48m2KgVoe1!@z-N1hV`Q&5=8 z;Yp~o*&=Q?FO5aZtyda~N8a%z;d+h9H{in%{wGuvC_E&VISv1D;J-qYUI;nCD#1B^ zyzMv1C2b@F8sQ1GgdzUrSs6Z+D@(*K{3mdSqlEvXXO2)WF+b8M1)57t2ym~j`0K*| z)G#dx@E^DgV)!2sp776C(s7?~$;_N5OkU&#LXdX1l_x@E@qXu}?|~e>%Volv<$+Sl zUB@<{tAKXv0!pDoN(uwP_e}`pTl3sr5CN44-xU5qM-xNfgF5P$mH!L-HG=uY3%v*U`^r@;r!x6_2>%g=zuPKF_STIc^g^RR92kKM zu-xt>6i+bO$G<|9d`Mrl=6_e7Fzg8b;_GAp-gK!@URn4LgCX86zF6RhaHhQDAHF{E zA7OD81z=8Y@O(eCd42T$H8OBOn5NT;)=VSOOZyBomowy?>}7&2q9K6=Y`g9#jyU6E zaRqays$7?=BV)#`xU)3m5rkoKAUtcTCdlOQYKIVYtf83T z(RB$1^W(q$RU9)sDh$A!{~2j|VFsdMDKd^b$V+#_^3G)^r1ufpI2UH@f)Ea!?ECdD}SpWpYX=kvl4OZ5okK+UCC37g&q z0ZkdpBo37?F`o!P!jgf4k;T~qYw&p<+b`1b=96CXW8znk1^2Mw>=Q?95kRH0!x}P| zXbzK@EvBtG_;1duGdt}GlSGg0(i??;E7V80J>xg8A&}g|6vKnp#5yOAT=5!{_ zf{SNEF0t|Nx@$i?CXZ#(XJ+3@e1(EI^U`U;kE*h|@xg8|23&69zl8HScGLVEv+>VH zGQ6ej^K0?AWo-8S7BpdMmD#5k?7cTwd}-8#`Go%wkoeC7|3@=K#nbeIu7$(o=Sq77cJw&Vy3F(n0`z(p2=6UV5z2f5%+0(LH>!sI`E%Vc7g_UUlID2h1{i- z!h-n&HE6$|&K+s+a380aJQa%8)b&nx2yySSU$)>)py|h5_z(K8=7UO^>4h~#8Q%hH z6T1aJR0{pE8b;6mez8llRhcn$ycfdB2pjt35}qc@wR0L@qfVEL0w>p?W(kKCicZg^mAKz6R#Dy`KP0{a0=qje(UM zpYfjt@KWzPjtjGu@PDhoTo2S}-H41MmH%fwKk-;^<3CuC1TrVW?c=}KYnd@7o~mpX z<;2Yb)$qT#w2u7G__V!sc;lbpZ}^XuWCzJb?N?0n@{WHag$Pp~`M`}gCM5Q2l5g&y zI0NYRIz^Ifv3x7c26YU&FSiPgf0cCPz+mt#Ow8+AKUYL5VXa3k{=>my-{fw%d8SiK z7k30qnjcs_=NQTO`VspwS?Sgg4<3>%mKUjE6hgnjifAu%0K z(ng-sSs0evWK5!=%Dj;a|5|M2|5YD{;hz?$SDY6bM$GFB2~CooSiT%nZ_d(auaIo9 z;cX;`ihSMZqa!K~=x29>g8N)}7`3F>n*(LKY?iKCWyxV+ZIGW!*z#2$aU!*Zw-Eg2mz0xy8D`aMb+yNTia=eSI- z47W>ZKhCD{Q-_KNh`^19!Dne$ArkAGEyf_9D@120LfaHn&3%_quomd|YK()}fG?!{ zYRY&lz06?y!XFryncS4ymcM0y*Tz zJvmi;%)Dq1j*S53xLmx6S&rd0QaDHpV(L6{&c%w9|7P$pE@}M7!()7bLpT0MJ;p#y z@sl14qIdT-UP@`l_2`@8I~C*;EL>D|o z!onX6Y*90Oezu?Zpx*ADW*Pkz{^fy}cMo#ht*2P{w~a?j>`V@igILSMg?X zy);ER?Ut|u-E8^4mI5kQm?Qe<8~hZjq`|qlI2WQ>{!a_b68_PbNKL|56z|_?`)o$(?Rv>f-*+?1;*>Mu*2eruahoaFus?m2#|XJw`BSv*>zv zEcR!NU&{aTTXS^M_@#d1c-#l@`+Jl6Vh$368vWK^z%3}{>b4=1cp3Phx#oHPJnV%C z%l|WUP}`qkS_fJWfEX0&wW4Dj^0!QcK^$hGA2K;uRCWqa-P&6Ryyg!)frTfAGp&0b z{S5y}++GdmJcf=vFXs|n9V5wtVSjJMph(ra%{(EY2ajYmb|$M zoxjks@n2%50iZKn5DOT%<2Wfhs)HbE1~0*&+ZxG$&IlX|E&QVtFYt)KDQCux-L=Jp z@L0C0HZ$JwFI;y#Pmg$g?LbX1&yY!ia+MLr=)~j8ejMfqBs(J^#rZ_*#M?n0buP5d zOLZ%G9(and@L#HJ&(O`a$mj~bobz)p#~d>FuR{o8NUI7KcQ_dS>&*Z55dPh#fv=`u zqUZ4!{`=*M#XL({KR&3pVJ~viYud%KpmP+sESqBy&JcHoj%S1v$N9jgk^kkW|70TZv;(}>QX32X5azA^G1KFZ-yQwvzz2rj^VMC+i z-Ow!?et3<|U@!Zsh;l-)Woe&7m&*u|V%okH4Kv5Sa^poYG0mZ2m_JYQY*cqQQ^|`u z#>tdn>7*f5q&x>c9ev+F{6YRdf8-CuFa5DU9KZah{YBOaeTP%VI3VjB;jLlavQ$hT(Rx%#UT;Et1MhP!`S- zkP&j8XZd@nAPjZ62*2ClUW0r#I6cS||NMAEi5eZRf@7k`ky{6~L({FR^o z-{UX+$v=XV<2U>re|P-EZ}|t}H~vHaSp4MQ|Bpm*Iu=ICD@#wUK@4V@-pK=$fILoa zsUc%!D1vvYk10Wu7rd@5W?<7-MaJIXzyx*G=MP^Q2eQl?4@oBNZFcTp=-39~fLq3| zl`16c!ymZI^XJ-FV*Gf=Ub+}1{-Li?gzp@6a->X! zER+}`his=<6#kLr`hD=3bKLZ79*?G@)wr@D4Kv=XM2pp&-HKywYDOOX8z7AmEnFb) zeTX{eEc}O+c#!(?4w8beKcr=G++uZ@F(u~`<;4Ga44;?^ahS7r2fw^Bd;rN+#zo*u z?rBAw{w3*p4#N#bMH_OWfyF7=yBA|wnXFMU<7ikp{%84IN_M?Mhrl+XQ3U6$S=;-W zvDneWy+hYwGK+bEy(yj!0~Ph7!KXIf+({$hpjb#eNVJQx{q_{ZbHIgp4VRfEgSCR` zigUh$e^rO(mhk?rNQ9%)WsE%VA9ws;f4=9`FOK|=L260v22){Jdqvy;QTQ+BXqD~2 zzb5r}{FCgD{6B^MOe~K4*WPY05B_Ce4VT`EnC{fmY`L&a8NNMUIhUu3^^c_vM8GX` z%nH0Jb^Vc8YqbNNE27!>apI@eI=(>~^Tz~;d>(`UA|lTRu>|}FQ)CtM%)CncCjw+L z(&Ed-gJFeD=0P15@lanQ&OEP z=!lj7b{}TPuCVu7ryRl^J#%HcekA@Ag#s(Hu+nL{0AZYmsecUoM}qRFoXM`_dx%(R zz4jO_A>@4B1$aYtOZRn#2?`6nuRA2u@So1%n1yli$Y2p9{9DFIv<1wKcl@W}Uw|_F z%Og`I;VMAL>Z^ow559FHq!ylUenL!AQkuV^iVI<d-^yRo~nnup_#Dv-7q_u7NL1JZVsan)x@k&za%m&%mMM zi_QdBJiNcX|NiA)$p7mP{Aclh|9Agc{K^l1A-?zco4yU1fAeqq?eSB;?PtCXoPVo? zE9f*_^m+a^J4zGPn7DvdhmDvRng`x}S}FzixgI~*R|Bkbt*~wvvoRgV_dQf*eg=Qi z*6Uo~b1*DjMlev|if{A((!T?{3=jUkXmAdN-naLc3C7^T8j6pZ%Q4t($N}gNF@`uy z`0wn&T0weX8N+{QwlK2l2rIgr`~3&kRk-Ckj1_QYExU(h9OJrRqH`va{@d=-VfJJ# zBLavg_FKYhxO5rg{TF{Re(7ib%lM`L@xO@A^Y1-AL*~ErpZFK!Z~lk>nJ^(ma`nVJ z7XI9KLZSvnR?DEah*15AwqX^iju${EZdh6kt3X=-*t#tNhmi{BkA72Z&7Oq(f%e@b~A({_?y zPMkt!a-8W_ao`{OR;7`F)mJALaKgmkbQ)a0!mkvk$VG)lgewIjXuVv=;lGw)u8NPd2AMixV>Ffz=-T(x z5*ju!ZaE<;W1JA)=oiEzu4l!jU*WFbH{&}mn$Kd#pB?jn|1ZvK*7)H6O@3fb49lf1 zYyVw=l3g>lec*`M2i(?g2+#|=#9)x87&j4u@(hDLG);d+z&Ut7v3=l|lwJE6z3`e^ zraWH#%JMR6H<`I&*|3~*Z%HT= zYu5CTAR(ON|7$x};(zyk0xisYc} z#vfi6_<8N1IPo8=q0hx7#eF>HI9L&{F)r)2-!93?G2kRz>8~#@_6`PY}Eg@;0yN?-Sb=@}pWrs1M5zK08=y8@vurV^R z#l{jtAkzRhc`nW&F5MPR@w2-tDf$TG6RL68LH6Lu?;HMW#lA?-P6FoX*A+8y?0u}A z>x!l%Gd(9h!fijnkZekU|J#MY1OFcTm#lu3VEf=p{Fj2zR7-KVxFx*VQ=;^aAKKv2)beuD#eJehV)o@e|+|Jt#C zz4VCx%zrcgsc(bjYe4&cCzISN)2c}M=i|kl|XB0lW zeAB0@^3hSnF4hXn>6~m>c=##Cc^q_7o>&c-2kxnl=K-LVh5yo-H39r3hxZ~1mNNTE zmYtxB5i%H`y>-ADKvOK)@Re8MW6S$F_b>nXKNEla-~CtPFa7yH9e*_s4w!%Xw_nfA z6+2JaklxHnw@3I8;FM7L;b~fm_Yg}@a=MRuZrq*a=PORuz&c1N=kW26QHH+x?sN0c z3;UF?h20|^A}&=LJt>xteOuq%#D>)ZcjP(_>b{PI-`sxyd5#@I4ePdI`&-Tx%z{L^ zv0!@K^zq@`DYWAs&AEm_9zYwDx7g&nn=k8&ZG(N)6d{%M5U%H5r_OV=yS@#P^Ot`1 zzxc5R%ID)Z{zLzG{O$kr?}*>0v0y{2JjtkB5s1VYVyZdJ-m@T(llN&S<)PS*t>lH24C!^RKzA| zt^99tww*s~zXDgctRz_C?7;~z^~i;_I*^bU{hqxVPmFnc`QQ%X41@aC9M4y(p92}c zm#(Sey2iA#MzBJbAn;sHHC3~B#KB%BSA=0ql)0#zx+M{m2?!MDg=7=Rr9N1HgolaT! zPd|Zo-KT7b!M-=2uKd%3oNgEFmyqJKs@+B9_Ppv~zPbRr@E@Ki8$-;Aw)-Rg$)gNG z4I%v8d{&h;qa=q-vDbN_nagtBiJ{fdNk6D;ayTih0R*Q?6l3eWhtgimOl1D?BZYqz zW3oL+zk;z2Jf+_6sOrBpp?uYG`HcT_-n=eM7|m?_-)&}sY~FH?;!9uJ%X8>$pkvF0 zxF){9|BKmVnvBE9W7jEaMbQ>Huq%NBAMo15N4H0h=2nm3i>)ND^1KE*QB z$a7dUjp^c{L$2Gy1pXTTg&6aG%WXgSxBS1tY3F~tLEGN@toQmZ{@wqJ3s}c7&dgo) zq;EcO)XiRdE*N|fwurCtKhLwYP8b0HFJ9aTOCw+U$}x{dZY`|~l@S`YV{P{rD9_fG zSu_8wYp~2cXRti09Es?XBChW-rsd=~HHIAK0COs6;uvm~2eX!d{WET6y0G%8{`prH z4Ku7iauHpu21a*e%b>9mmyD62yPzG0+K4hO`M2hv(HvwgRyu%O|Ki_%3lG^Y8 zNc?j!e0>*IoOMf0{_v7Ox)z6*Exr_Z|L}8%@?YCP*&m;~mw)PC__yOX{O!L50T*E` zB^z#CA$!v2eauJJ&v$-x7z>*PB-*jUqhYx4kM*YwrcyqP)G@a~C>NU;@6E2~GsJ)J zPaxa$^K_in@GY{i0%zU1<3tp;zkDaUxD{`muHMIh88#~6L5;gV4GzTZ*fKq20IEP$ zzgyE5jifo@5&xDYOm@@P^IczXdsyS}&Vm2fF+MZ$vVoPiF1hT<*RPK@hK6PqPLGl} z{i*?sI1X*v2me=@S^1GxJ_E z!3n^ZU(8V-^^AYn12re@F$H?5YF)A%_@^GGm&dz~F{O80^Z9^R=TM>4mBWgB#J}&L znoT$@m$J4UBJS}szF0UYD*)2sfoAhk|5)?PxyAh7a$4ZQ8{%ols>BYniNh^L{D+e}0?6%b|Y75iO$mQqZ}>ln=a^ zJ0dRDuqbb9L*f#CmsB_W?+P-flXm_=s84f5o~hfwZum4a>nr?+E%qh;34Yb1UAL^h zIKmrroG}NFEp0u+zilEja-H%DFz-VqsZuM$fPOW=dGNh#afYbP53twdzJu3q`sDb+ zyM|@h&(HVT9q#;!Q`R1enZZAkz7Gf&1}X0-q#>H*ui^y(Kf~;@eM89w#JgR?{p$lA zlGwg!!3-Fq8U`Nr=2ooMK+NvmSO>*}Eztv7%Dry2mW=q@flX$p+$SJRvY}gYImW!Z1!Y(>g_E@ ztVBn>2i+V0+a4f*Pi>M9rscXu`c$vZ3pzr^9C640;!GZv_ftINS-A0-V^1iRCi+NN zN+h4b@;~{z|HwOh@I^PPQpEXmL&OZRPDF$n%JRJ6CiKDB`Er=C_AKp|w>^k*4{y1s z&{GTwmoaXMCGHpoa2ed80b**RQDRyg!dFw6!%1eRXeAV1X_eU$)?s?Mys8YXkC zueKYk&2t)_cwB_;V7`v|%YW`q=U>a6%3nP+VE&o8gZVOV$KAx%wny~v`IY^XuTLCL zKQO6@ukS%&-U8D75__25R;st}g^qZ!Mj7Ng5x-NZZ0?Tc1y8aY^(daFJLDi6dGm2V zekX=C6xBf;(8O2JE>%16^l%Mdws`2t%4^~%G;mWA88BP(Vmx}__lV0`U|np_WB7JF zi2s^zyy~QyX!d=Butr+>ECewt7&y4`p^XuTLH-CSBce+J6__65)b%D?$sKNdEPU1JQ}wtuJI-pwJus~7~y zLdXVqH$r6nw&GyNvE>)*gxRa)Ui6wx_)N+!4on*t*O&iL)jR$_Z+^SR*)~MNsi(mV zxR=F6l@Dyj01oI{eG>+=$6d(|y!fgK-*LHoG9XSKTiXxI1A&%!c!{i-x@8KMe zIp_>KD^Bb^=0IEkgnr0bwYYcxjP+bRWW0RCf6KBo7R!w{{NjsG`cXFW0)Xl{_J-7R z4EMhA#@J}WFn6sMp>fukH|L+3jV*sHr!oI)P3WGhJ8JqO1sz|h;&OZxd$CEvxwC6V zSc#&d1r9xood?0)yvqDv_R$0Ga^OFH4EzVMvp78{GB@5emKjM0vl_K?x01wvobj$6 zN}IT|f&aMSUpdbJLZXg54d}yYOT0}20BAn!MLUqZay>W2MSJsor^lUd{a)FKQRf7N z_Zx?gz1w6yayU@Hv{c)-4J zu<#!b`JbfYu^S#r>uyfGHftaLF1s=^@KqnH<&Pl=1&Q0;=)OS4LPkw!Q7851@fH3f z4wivYyZ$c?^umoH;2Hked|5{y%T9OvKgIo#M?9#TkZyexjq9<8&=RRbjw9v|+ob7+ zpS5stUC>&2Ls~t49nO;JINpR!(=m40<99{w*ZY_6;XlwW%p1sK4;ObLw0HUZq{KrQ z+nW4e;=gF{WsT1r$GJO}JN}ImRh~Kib)Gy^J~-@HPW16(+ccBM88ip}-Ce$kBPQyL z{2y@?8LrFXo2Y$}#DJQ|@gDfM{Lj?Fr7QEO0CqnLqeN-FST=1OdM;~ePuPw5f3@fdb=C`Q<&yjY2V%dCH^D8j(GeVeaCY4ol>kX z`pBBIZNfW))OR1-W#oOR75=@o6*nT-&5|?oL7yW(j978(qlGv;?CssM&ag4LYZ+=6N0c*O1Ug6gshE6EQZ8EAI5W4+`y{h~s;GlMY*?bJ?uF zs-dRj$9D=k&mpJm1OorgtEZ1==eWN9;s<~1XXCH;pYHEq#(=p6lYCLSlVk*A z+>SC6IA#~(vOLn$A@WuDd*5ldc%lhJoG6#`6P0w7p80MpI=<)JR8@9|G zg^P3B>49Qx^(qR+yDL z77O}g`#4x&UI{Zyz^-f$e+g(cfBHbqLELsoOn!+D;{4C8B9Fwzv)JH&3@^xc(c zrcu#F#A}JPP#gSbKKYKj6aOE{IB1O{S6&yHlp|m_?{?XTEJYIKW#W(DwJZGVD_m*A zRvfW5IZ2%T><2%bGR#FXy^cINab>+=9B~)xVv@-?cvY?c{1E9Xew4h+y8gO{5I_rh z!(u*5z_GQTED;z7){sNVwF_c^O~2t^Ly@GolOVvJX_v#ecW>JG*Bv|92O_J$se|lT z@XIK~e-HB4y1~03%mCX*i6$!jJ5Ln^KN|n#6N%WlWegkk6%r@@nVfaXL7V}C-T2pr z>HQQoBo=n8!G?$5AP`QEv>~V2P;zkas;@V2zDa7Lb3e!N?t0j223zj)o1t&`kHP=L zfZ0@{lyEYlP?+OTbCqYc)S}fMOZB0eFg(l+EDl&OL9uDh>>wUq!2w7Bmhk_ zn>{VsO7dnbt~T>7-YVnj*g2y{fRQzo9}0YpbA{*;4TcUMX!^yhL)X{@w=g7)NLY9L z+Xcup(mY}Y{6lYJ=O-+}l}1^{(arxRniYaCLe;ayGQ{`w>T;Y%Ko|99jR1 z_haF>p47DqFmK*v7~mVT-{-xzUEo|7AUEb@ua*D%Z5=9=zIc2aEdTERsR}%`B@f#L z6Q7paTD^E0ZXxvb96U&Dt)$DevFfxXN9DdNWdw7E$kCp7PeVECm^ki2y-}SRi|;8T znP9t_o)p^6SB25G0d0=K3p}cm%i0$|NapyO1lMQDff~*7Ro?vrj_WbWBtX^3Zl4LX zy2p0n2GWYZ@IU;%{6GKGelZfbaeVAM@{a$L zKNtRQ!?bmV@Lz`iWy@rqmM?7;hRnC2&<{TY<v#Ol_zi!@Zz0Dx zPmioo2B8=nrm1H0hc?48u#K>bRTw~MXiYxgM4_<#Y&L=@bi4V^Dr(}!MKUr z@DUg8{0ei6T@Reur_PXZ7aV7fCjO83#uJ;oPKX(`c`N}7VFOC81pE*Z?~GL=x(>-< z6>vJCJ(xTse6qXBhUPZMR_d6DlTH@+hQ2k}mi;O>`MYn)&pvcxF358)6MPrNq3r_l z`eShd@vrN-%a%9pa>5K=a46HYd}=j^>eEwQYaSfscj}LhX>tnBWokvNi;TA46aG=e z-SP_$V3JyU!$yp$qCVh^p}_CqA94v6u@XrXDuh_N6NhWdlwJl)wQGVH^Rdv4B z{j{nbLjct9C*}J$80Z*C|CS)z}8AyR89Gl<4e_4I-fPZYZ zaW~6m9Ld{46nGJaR^vi}Hp0d+ zhuoiHIa#?xOOE2z)={ya+R-B0NN^5H)R4t^hzYO^8~UZvb)WHim653%I7=RsrA#Mw zX#_y}`^%J_z{^WZtg@HBZXBxCr{**TQF{u{!zK%7p2EvoxKFu8%MbDAa&iWOuhT5O z3J;Z!__FQi@h}|m=l=WO7r)w%&sS{x+<*PM<4^p~e?5Ngzxt2j^VJ(8$gt^af~u)6 zO%d<3Q@_aGF?Ik~o(-D~fN}iw@4I+zlb10NH@v(uGIb2k!TtY?dt65BC~M3hh|&*8 zd1&X$Y`JqZlXTgVW?BWZx6juTws-SbRu%3@8~o3*gDWLaHq~)|Bs4NKE^a~-uG#R_ z<7V53$7Rg5znHQUGo0McvEfb;MvzT$0ok0P2bs$kv43Mii`f2EBVKR=c_>?Wa&P^` zU(8?lga2v#{D1JT#1H<^@A*|9Dt{h7{Gb2Z5pPt_!P3MI;xK2fRz2hirD_KDrE4eh z1gTHzdsS-+8>S|JCcUR-zBvFE)g;N~qXO zC)cV_1l3x@2fRc2BA+_(a7=hIIP6>Lk_V;#&aiBXQ z6qm`0ow8bYUd3Jmit~tt|4`MQWkXls-)ttk#smIKW-CCy&Q=I3y~vjp+b=Zg zQov%ziN@Bo!FI~GNDHr6eLC%)OR(C`5GFI?pr9qo#GUXKK4S-CrS@Q+fw>O+#{l0t zzqS|lTKtCCNQ;rdgX7;m^i>unCiA^F%)wZHxF}@$AiheNV?K^2{M+XBfdBbv{YxFg z2}?$JpYTXpnOM#RhuI)(2`Y#@TCvZ#%=U6lOyYkycwCe{YF_!D=eR8ofr=Ngrd)gg z3tkY;rtr3gv4^_eu&iwud$ZWe|3=nmxKS|EOyy1`Fxd3Xn!-OuOmY$UK{0=AH24<| z^I+*S|BrxtD*R6)rVP~$U6t&irR~mB!$1ACY;?>_JO@z?_?|X`SaCR0cG@aAmDr$R z;3CUlpQ*WPwyH2k1p>+n>+6p%IfS2-%PowrU-h<=$Nq@7*UMg5(N`GsdHxSFM?B(R z<%A5_1Hfg@5`l!_f1;^QIM)INi=JhJ{YXM#M6RiWUTyz5pyPbZy|PxA5O;d%-z=HD z?aH`m?)I_}TmvH(f`K|@*=oo1F(Y!auFe}IG9yExSGYGgD6OU8- zER^A-YNW0x9hs-MhM;qYLhbq=GA>lE)hRC(hbg#Yt)JQRkOTjebk(72N^N>*r9`V% zlm3@2?)Z-f{1f+Z$=tbb5ivTY7yaMGzhRsBpS51|LOJb0T?XBT24ybtKQ0=jj)^3V z>y0sL^#B3!QN;hae&em;5&sc}|7GkN>o8!up8fC;@ITq62I%vO!@@UIvRJR`=sW%? z3T7~2huEih;9JqZ0aweM_%8_5C#ioUf%r0M(wMc%cxl!lC)6Tq3;XgXvRT{|x8ge1 zM0?@CeK;;oWXeL+W*Ut^*GDgzttgIb9`$fe8ZLSIQ-cxD_$L9Yc8R$lsO&zE*K|4w z4nxe%Xr}c(hI2-JVzCC@HE=BN6v{sanrFb0v}flaDLD6ZR-I7>&br=2#lJW>aiMme zqpChgqor|ld>YBL+ZfHM^mXQnmtq6kFJWvf8`a~WWc;9Z^!_3UI+lZpSL%4^i zlsugs5r@1cQ-`sQk7>vh7T@~XgUe(&M3Eyx4=j7{Z$JLZw*l`j{wjP0##fKefcfV? z1Lof~1LnW*XXo?1*T52?z=1)c5SSS5kD5n4*v0HH4AtL$f?4q={aTfBexOZ5wX==bE`$bm8*Km4P=-+!HO0R{2u)uba`0QRf^ zX1vIwDPw!Qzg4D?toa69uDHkLRB&o2zkPmx0Rsqzn8v;2poxv?M~V}0+b}*K^%DLq z^fvyPnou7x&Pznz7wM!xE9tn#2{A(}wOtXupT%ddvE(9@ExWRR&4>g4%}6;jj50eQ zUF{}gd>7!kS?%>|{6E?U__tx%HL*h_iNfYk*P8T@>uV7V9hSlWS7}g=Yj!ldEx7QX z5q0{P={h;(?07`*l^UE82C%5w737KkiS>nh1pB(<+H`edn6FjOZ&?h^H2G>a)I>gU|`t7&4C4;KtN&a#KUUq8fH|sRGX$ z{v&xoDeH#+FvGUpT9KJHPps6IG2&pMqK$Ifapgt%WsFl&e&d81wn@jXYi(_BB$5&S z39W&aVn*%h)D2TF;61#*@gF8YT9cuR!+rXT)7Wb+5p~1Aq@MhLE&7V~bs=wu;zY*g zEMS&k%D;CSsfD9r#B~wR0W+CWVG+dB1aDAj1ZI zNX77v=xkh70cfm9MzV;sz$|t1m~S8-%=;5|)-(!v6_c=K@8VLD2jqpl6L*_F*TU$=f7)?9B*7kFtILFaQ%7Z}7*`>?9wkL4@lMRapu92z*N%d5e@Y*h(K??e z25DyBTMVor)XC97z?+lUpa+*N^EaiO;Lq8F`D^394*X|IEi1mubQ`O`x&Rpbr=u2u zX2tvLN&FLW(ib}0iw2zmOO03-cVR<0CR7Q7VFLtInn{l#~MJcAeQj6T$yR2 z3j4>Z{bZ}pYj1i%n3^8U@E^o~8I^BaKo*`ntVFEnee#)PNoXF9|5ThiADQ;31iSwC zov6q4Cgbsj|HJXL&puB04>};hR>gvIW*7OR@t?st2aL&>I^u{jS&=?yGA?%fiv$by zP28ny0!1A7ck^&he@_<~GY$XuVJGS>1xiaeb|Rt9@t5|cYvqQ2s=+OU|B`%l;=dm8 z563d*%sGeNBUMDW2|VtCc@YLJBNF2%PcWEj&{ak>Eh@AjB!)jxRe=SB|4Aexo?`X2 zxMk@V=6?ht@h>8dxryRh51fxQUfUKib=~;8;BViz1ZWv0PyAzR$N$7gsP>?3+5gAd z?FFvD9l?`r*zwl97imp&Jkde)@GfRhP4lJPY!O1l{d3t*ILeA2cFvPZDW0z@h;7flOZc8>=jmoqSq!EvlmU1FL=w;Z!q zzK$BB--Qol-_bX%>1h%z-_dL1v^VVR$smltOVeNeQ~zuHT0H*ppZ_yGVE&!|TK@ch z^}F*g{kcEWlf;>;{jmU`@)_EFKvhhU(!_OK5V1$_7U?akN9kQizI4K2?A!#{GA z#?A?9ox$AIH`5KXjOQT@yX3f&q0|;YV$eaqX?=}0hU>I2UMkDc^wBX=r=Wdf$+5tO9KOv z1Jmnpx5Z8QMB8;OTF36Tn+QUcn;A+{?;rl)+aURKhw{IiKlp=xV+YE3{L26PbJu^N zl-r`F{5T$q*=O|U|I**h`V#+>1Cp~F@N;iZw1nHpq)7~n z<`~|ifMn)$&TWxT>%f1A%AeK=szq7UM$}lLkqaVxC%fRjL>Do z|KzlDKXc65PL3-tV`i@mW~i2E*_Zi0rFI5}D!_l|QVjANtM=)h+Tju|SQj$;zKR%P zT==hDcg@>a0{biz%$80*GeodogXG7%sv59f8`bfoDPo2N79zt5cds%wG3SC#!|)4WK#M#Fp^C>+AdFc`8I0_eNo*oLB2!F1F|ooS7gRR< z8%<8U7dxRS?h)MHf5vpZ<#`UfkkCmGuv-=Stck6Jl9}8vyUfnX|6}0SDjS0(8HXVf zw*Ro;IH!0Ht%hwwPMJV2;h(0aBr}Y_VhSv?j)f{8+wMk+HtRU>pT&J&dEh^V|7l9* zM@*4Y6Tz@cm?(j%U99q$uFG|7#DV`X{KtX+;$A-r|DeB&8QL=T!VO~hSBan?W$g6& z&|(4}sM+|J9>Twlo+7Q6D9P~hykFy!NSR35TOW#)kuA_%NiN+3UteeJR2 zs15(5A;qPfJ}sv8usQR81?t$cDH9Mkn9Ih0IsSRoAR*Bx37ZW5o8yhp;`$K74#kYQ zi8M%CG+Hqfo$~o#2H}LLkxZeYCLi#B@XZ7}?G`tGANVgdz;tLR*^O-6JrR7vPrh7+ z;U6k`;@A{7J}%)XcWU#X#+sWxq$qG7Lt=*iaUntbQQ)mOK#_IH-S}s3eaC-Is6na0 zf3EybZrsAfs$Vw#LrW?}rM)Z}CJ|9QwQ#q!b7A2=tG?D&^)eAj<_gO^T|X3!;q_vK zbFCpia|t2*r`e2pzdv7>#4QtpFiAQm`hYC>l@vrgtux7AIph z3^B`unL1%qZy>!=#5se**m`)CTT%LpL*vpyn=ieE@nSO+^o@>YpMm$vTyJpTv6KAD z6AEva3Tjrl?h=plQE}I^(pJgA)s4y{vmWCX6qpv9I3(@p((9i)h<_~~Jz)Ni;!pgp zZv*CUKR@zxduf-aKl;8BDQPgSi+LPMdZGpk2biEE;sq1XXU833p`o@2ayQxFN<=o! zd4#mJtIrY8eBX&95P zG)NlzL?E79`@p`EW2|KftA{gTca8^>x~tgTd-44qlD&pLdid}uw8KUSu;}35SBs3D zG$R)NgTH5-?2zZ6sP(VE_=EhxANoD{bN|7=62I_kG*I@(`xkybh@az8^}RD^a2ui# zIJY?Dg})Otsqjb)jf$R_yWix~H9P|bJxQE*ktsehSMfJR@ZkSYB$e;Pdx#_dnhEe@ zM(`rC;ok@4$0lVzRJo_j*5Mrnq*gD_c&qb}S((lf{>cD`Fk{M{a|+7LhmaC$$sM(Z zr083P3#56ACHpi)sJdgVUlSEJ0oKteSYh8I|0gbr1&?FNaLpZcfkE;d#gW_O^4*E~ z^LdVp3C@p)m)aOJpnsvu{LW|kF3S} zcBcMgahnLK3e{1=y(Y?G55vEu27@3*!3`Zo)nPq)}ER#OG$k@$FAQss6l!#OG(6+gv&fv|fcj183 zFy#8k@M|^c;W1u52p^J$JVZ+!=5*L#F}o|)y@s&0xSqT2rcaXiwqp7nM0?FSpQa@K zY4#`lJIwR=Nq65)$9rW3TJyi0JVTY5fPvq9PdaO$M1G{Nbj?AS!~bL6hCH=QazPM- zobg=?`Rm7ObsIyg2b6 zxEpo%8^ZR4NOJ-U8r$3!UcZ`|mK2BmOS@QXAY#Qid2j~tUpQ{+qCw5hPVp7~Cs@+% znoC|xe!#!Wo(KN(cpo_SV;s1nnB1R0Uy83E@Lv(Sc#LBb%mVzEO|l_w642nF5yF%C z%+AS4DRDpFLH@qspB~PoScTa&%8aC~%KLxeKZ;RKp_~ye_+Jz5a+x3TA2Epn>%@bZ3P<6l;G{C@^zuXv?*oj9n1&Hc>jpg$IQ-G4jH|tumC}X{ zJZ_Gi++DQI9=4{lYFLvUMhtVDA|>-cMx;B<17|LtC-xop4_9~-NlksvHLlE69mpYR z9Ma3cA{w^n?&@ibd6y|o!k$6 z)IBK;NYeTua&V4pS4bAmIkKtip%}9Lp%*zY@p0>+)CwB{LJ`=@mwWBFQ8BMRFtJzI zuKF5;Nx`|WJIIwiY;d%B;u-%DsBII+MURFE{j_E)9sgzirj3Mu>Sy>5w~?f7n<91WW|5RC=R42IfgrZO~uBTUe1sBT2DhN?iD#U8gt0W&QbzqzC+4$u{ex zUyEDqO0PG5t0iNZ;bO@4j(;0DKpo4k3;&kcX8lAja@s`~uxK6OKhUQsE6k)ooK+LJ z8RDG5k2nJOAC9~8fkLoomumM5do^)mgjnI-5*jeGdwCAJ%rbxcxaHh+T(6TW8V2se zq0jgi;U!5RbeFrzt{%=3|6_i`@%+HoDOfR{-^KqJOLbZ4PUT{H?BYmYn-TMMI@Sd| zOK|O@Q z(6qy2*`Pqc{vY_m|fjvI=D)v>)t10o679q zYGf!&7Go1JG3S6Q)8oEjP4mp|s;nr3>OI7Gg(gK-|MzRg)d&8Iw-u-1v2h<$k9Hi4 z4rMzV{-KVUAK2i3)C+bR5}h}Kx#9u;d5cpAj^h{j36+v~ug3X(kh{#z=b#a*54kxF z@!!oi;aopaJIa)5j-vpx1-%FKFE*|X zUk4a%9prxy($o^>GAvhh+uLF_7P+6M%f-p?4r+PCCe|*2?=nyk|6a$;3P96C{SJzLb;`TC;Bl0_)kPGPRpN2zh$sW#e$+DAvC*nA8t<2<+9Wjxc&Pp?F;n| ze=1&by4N&^s(>L4)f$5ifpCZzx_jE0t5plkYmGE&_o+=vm2_fZPrvKuXwrCXF=(Gy zgWs6f-bNPFt$Tv2cN_(6!>st}tD@55PbL9qxcz(M6$CQtd2o>EA{y}%v}89 zP_a$|z+DVu<$h8141OQ~j8M&)^B0d~bL$B)z*L3d_7rOvR!kdR zA|yEoCazX~@j0FQdh|k~N1ZZ+0q#zv;f&zjD5l)RbuX?om(x*rDK0qz=Z!5cL$5(# zXOYkQFBm&92&&+nZXNo{G+^=TE9XCh`w~|8eoh6!*p__Ym+_mLlq$tW5X;-977zZc zF|6(+>UK@yLDMp#}*p#?g$Zfam~gO0RU9-RFqk##Q5Hv*&^T z&n|BUA@|nd3cKdN*+=4f{!TU`myjAzy|HxF{*V~M*%~uCscXCe?sqLR%rX!BHGcPxBRNAfZ!`8oPQeJ3kl-*Y$;bO$=hu z%$5H$x4T5lvFiL}!$9}v73H#51kF`(;vdscX6J|eKgR`cR0k&(zw&@g%-k?*Ahrs| zUp_;eiiyKxo%SRP(6@EnrIF5#5BOIc;kVDtvhe@Lztj8RHzL+BZnbQ&KYj7ah5r;t zpat*fs&XcsJ=vwoHi4p5!zGK`2o4`;=akaKCq7Mb-tF*#!RK$tzcmb+;fjXUVfc^9 zHHec4l?b`;A2#Eefg7)uMA)>TlO>NguO0YjHc91ylwX0k*f9uS1ierX_z&SVbU{~>3Fjbd3jCF}U!M54K8m`KkCwGCh{GBu{;%sF zC{&sMfk+A-Vf$|=7F`G*FA8G*CpZ&!&L#7#!UD!C<6P6mP$5or(tfB0Mcj(e5rWr^ zvQ^8}AP7)=vEzxrC182$S`K+CXzYorv5mnwtylR_?z{h>X?Y0={Esq*ENnaCim5~R z_jJwnN&I&#(Wcq>FPfXBy8N-Y2%K=`V8%VQ3(G@Omv-JT3kKt4KzB#QM1?S(aR zoqj!ex83i?Fy73+Hpy(XLp{~G`5 z4H6k9Nz7w&9AP_?sx5WL6KkF@p<@E9c9G>N>q_*Wq{AA;7JsoY8C@(6Cd{i$x<0Ek zdkkYH_CUeAt43GvmkRaXIq=Muv;UIt*sUf~Ssr#c8~LIj#BamXbdvDzF`?u}eP%pE zPQwtvIgy6>y!^RC`49i+@r!@>_x_rH-NknwQ&_w)?2qX{4gaWCs>~xKKV&pdY8v=< z4hb+_vZk=%M1;YUO=*y7Ki}h&x)zx|Aobp4fK|C-k!626rw?F@zpT7DgWEKpGC3H9 zBaoCR6tUO2iDEw$XB9WBtml9VhhjFkN(b{unjv=Z9LjVvSs;haPMvXd&4o_*-u5Jz zRiJ@#Qs6l8Unr8uxFkp7A4)Yb3IDTQ#=313VW8qGc;R9ONTk@#hSq5*Y}YU`Su3K* z_BZr<1?}y58IipbObknp?ad<-Ja1kwQT?KPz+}S}5%=D}fu+;xETgJV|7_{nml zMHZ>*$|bQ%nrV}!9rgJ^7VUuC6lc;J8)jcr(0~c}Pvte2Z*oXY4srZLr zM-j^Hh}pz|tSUI8%$3XU-DLzTo{fLlgu)R2tC0>X;4H>q2MoH3BH$_hh*zf3FvWHq zIhvRPB$!Cb6Wk5|*0q*jB*CHOXdC@(V8_MNcnJC54U#Kapb%Drx5%C`J%w)4? z9r$0Lb}i3E7#hUFf231m(3Y|r&W7nWr;`oPJ?_w@H6A|mZ`B4Wkao9Iq zv}y}+&Va1rDh&U)P;la(799NVSgg=+B$fLH3vc7hWgBW!#9}&RI+53!W=?Xi65P`8 zA3K*E7zXaZzjyrC4p9OJ4a(rT@a`W zABJOqqUJ8Nn)ej}zE^$4>H_PxiN1$_G8G+Z))hSmtDI#3#k|qp$nE=DEs*#=7Ti8G zr~9rJqhH})sb?7&Z%@uY>}6VA((z*8XX$q-3aX6XJZ-+mImCaf|1zfM7T(ki2rJf| zl7XnNNH1l;Afd)+2Co^h`W&}_4rn_!E52&zwf8QrY^6ov`0+$`oG@z27q2le6T_^L zp^v)MsfEsGpW5~_oQqo~rae9lN~j*gZVA-qwawS3+h?H}+>h(0Xu-_{e(Y-vzL%7N z0kqcDMZ~n>CG^Y;eE%=XQ;q;@Z~N=*f$w1cKYrK0o+aD8meE}#ZJ5HD~e{bdqrK$*&;=V75>Dqa~N|sSPb|@8ttt<(o zd?<=Ery@AZi#I;(B3Sd$Yclo_8<)IheP#NL*b^m90DLVepBI#8xaV92>W?T_gmI4- zOF{fYx8Y@C(`vdg(dh2OP+g3QP~S%kJD!UZkfK2=l=qd>(g-H5A@b*|F8=Jl|1bTz z_zvYC`Cz;Z{_{w@6}aLFN*X`jyaQ{_?XCM}h)H4nUXD4}hg+1Gm5_s(f3_iBK6gIp zovExQ7A>BQ8x8;L&F5lmP8_2p>7FHO!4Wv@^R8O8gyS^aRji`<3e@u41^j^~QYIS(P}AfV2et0P|Ai0UF$=nad}(a9@h?1@UdjBm(zEN_I=v7- zWi5dDpUIkLohsTcP}4kfcoyp-lI7}=YZuFDW{bY#<%a**eifmumwSR zKASK6Pa^f+qDrz}r@Rzo;ueX9m}Ry%t|?BDeEwLe@I${;0=}?t$A9uu2C>?I{FuSb z@Ml)6n?!)5g@1-Dyw%RO&G+{RxuO4HPFB<A#p$7!T zcObdvQ2>+?M=@koX<9=TTXGo*N-pv{?W9|0Rb5*XsWiSsU%_ z3^<%I^NU#~DZAx6;y;72*0EQ0EL^g}Qt6Ouu}#NDMDl7#|F*vyo)?oG{|TVrFhoYS z1UZ~Aip=@57MGX0M!brBj~z`kph%0EqPo(Z)WUz3EK~>nc>{6iq>11vL7T75zK{4% z_5Y}4Jhprn8m!M7_tQiZQpuv#kR69l=%=)!Qn^-~+&`R~T0-g=d{Tpd-@x&2uVPQg z#k61~PxW1Udn-v4Mm~(yO9le(e|7ROWObU(NG_r~)~}z(aR+n$rt2#*{=VZ*UtVm_qX_ss zKDX(9{)DV$%VPe;F%=e%!~rKw<=tbA$!o;~Rti8j)#~G0F~Es)mvpKgy|H|*0VgnQ z*@zLGwy7-g|FQQsJJ)U5c^LMLom1&JCW}D;mRdmocY}y@FE>C6333Mpk|2HGKrSRk z8j)ehJ(F^fz%pRj4NJBt%XHg-4Z|(k@LyGlMUgVNhrhk%cz(v(`>T>*{?s`-o5l0J z@7`<8Ip!GSdB)G2d%eL!@!1z=o3HkFN6;KkL6YGOx1*+-uSAb7YPTArQ9%C_H2TKK zZftOV&vD6I6YpmY_G==ROA^!yqP85f2LCENDx+8yvEssd{_)THXTSgdt=B2#U&cpX z{Gu0&_`Wqg%V|~d5aIF_*%fyEIXw87%&upgD>z*+c%CRu{+s+_^-C&z@{;Xx-`R=1 z-VZsWX>vZfudbu73gLhHT(`^X`esZG{+oCR{0|ZC>wvPy&b$Pb6`AGafL9{?JaaGKz3HtCm}AV5yYU(S`n`1mAzyjYbOKXiN6R$+ zeXH1rQxJ#zd=@Y|X)!G$Rzp#lTDsz=!nFqyEw%J{Lh{^JSrUyu)8-Q+#6vbgD=b5q zrqU3MzPMX+K=W{8g^3Hlnx^=FeW~UNZG4q{My(2_J3etbR7cemKEDpU3e=}EpKhOC z=K>50d35PJPjhdBDf`Gm-Jc&b?XiMejQo~jX=v6eF!bMMm7B!j>Q$4NZv65a6?hRhj~v5^SC8K zw9XbNh@okw%&@)j&mZQNEWAP&$=9*SSwAU{1laxxubBdDf(HKU`bw%;{^)J+PvlQ< zUHF&fe-8dzk~(e^_YOu{H^>%jvdFcRl+y6$Q6f^G@>u!7&r$H(yH7WDTEzhLSE-33OT27#PJ>3%^8@~&;o4;H@QOeRR}v$6<+bro zSYP;W?R?!?k2EZ{oM<*nJ)#IqhF3o+v2>)*{?~DPtyqo*L zm$aE^8c2)dDmrNeVCNk&16FYQgnv09X{%XRD0pF#%$@|i>_e4`BFi28KQ5oj#K!oa z9Hc_7t~YbPt5P{xgT9Qx*W@v|MrCJGWlzj6b;$YX732T9f0Wmm@(unS0I8=pT~f}c zkgQ}w7dFG7-;(e6Bh`}u!TC>XnvTOj(H?9{u}5wfZP{< z!++<0Z}?X{o?I)&x)Kj^XVUF~7!zUYZ0+Dyje;xiUy)Y4kqQ)Nzk+{p7@P|cF-Lg`{iqdb>l*yD zvo7lCa=g2+gFM}8N2(QBum7JIaFN-lLYeJw(M^9|FqWgAW`QJsTY+StJ2VC8 z_pngbox|WP(IPbG?Yp*GG7m9KF3>OxzdbLXVE&h1jplltV7^{Dk$(Y|LA}$5*;F2O zIrmNed^vWhI)ht8oqnc{#5HBJodQt5m=nq=Gk-aqIbO#P?Kj{_YI?m7I2Z-m_$|>o z$lrDFe>h`s`ylNzfUt?kpX)~YbpjwrDu+klMp9EdLlH`<0u+q3mnIvx@DOQtVO7#X z+@YM%&AR3>p@rXckV?iBC%Gu_RYSl|&brC6i^OkI%t3 z>zPWZ#X2MFStEU2sVkG$o@?7V$;hXk1W*5VsDH#li7&YEfcAa@Ba`$MYLY&$;aS5$ zE?3g${CB~ei=PJQO|UcbW7_e{mr-?Z7U;BV;2-n0iUo`}2>(62Si?ibxen9r&5Xt4 zTqvr@G3UJ!9ZFgs6ICec$f^<9E8_F{u_EQ>sK=EJqj? zW`QF4N4seQeYv=jyIZ}Ho8Is##WM%Ymp$Dj*eKc+zt!x6}Rtw*H4I|Yw=)Kmdh%j<>+OY}ME30h#@exXVkTnUt zw6&bA)0BVWKPN6v{(5%NbUiu}0MX_!POAhF(Alq_$t2uJawx;PS?WXt`XO@yfiy#_ zlnSQW_a7f?iRt*yjtLER{@OestJbc>lW{D<@OZF6Xp_aLx(c&SC#RqBABmcqw%`xC z^#lHAs8J3$XJE9HB@q<0@IMoj8IDSNorrlDs*vSZoQtS2KfE)61vx>qLgZ4GFtw$l zinRj;>mDyS7q+ZN*SHf%c1X+4npP|OS6kMx(fLij-8cN(owAR@4p*4%{9txUuc~{v zn5hQ;vp27PN-z9(dce(VZ|I7*%0d?Ob+6Y4&+%E~-%Bw5kJ1j*x2<5hsQdiGzjagN z2l)hF-bY$sS+?S&#vj3L$8ikd-|WTpu~B@}pV$0`|GMGdYk9{%4SQ_&8UIJCfzSGY z^bhzSnUx+)H;QqP3KXnQ>|^e3eqx-_n&gM^htygzt8O;$&GDb{U%|~ll1fl$%jkQh z+0AL{b3U04Dze?3^AB1A|4PnaRCK*s-)rI@HY4xLCuS(@y| zHC8GAKfyime`=AYde3FHSMB^???bDZPEm0q`EaZ_t#+LU5@%~YolTQ-SLb4T!Pz0{ zE?1aN$dT44%XybN>4c${Jl^U2e*})aX~wg|D_Jo9b8>!MywT!ZKWzM`)bIHBYPk$~ z6&svQm)NhF_x5h5VkgJwOgsZi@_xMjc%R8l@wZwwtF;Q*GKvHaZYNLF+lkO`V|9|2 z9pqGB1H+SmyYRmL2;QcX(*$&-IPZN)(x1;GZ+Ubcu^Xvb#annaej|Zy zSP;#Q zRkM~wtz#nRX!?Z36E@<%H7_=pfBYZ+Tjv?fzxmhjzx=fymE-$mW3H_j2xSN8lYV;- zrZ?Fpn#eVwXrfHo*w-D_t>yNHhV+@)NRmaM{Nh9``nb(A6Jdr{(*3|j90s0^Rtp4yH{G0f;o={$|pUO(7s?*yqj&r_n0%xc4@DpR z_c|Qr<(*qReumX12=rM;_o_mt<=Ti3jioJd!@si`wtrH?=Tq`iGbxbY%dq?$2nd2a z(%M_VepQGP>BB5VQ5rQhyJ-*(YI93(=kv7?rE-F2VVxu%H^}*^R9J6Zx83wHdQf=P zns@_!PkYp>;rF~wi(ZY@;q=!Z^wTL;a?IS%9T%{<*mgAbl&mf^PZvl3OKOX6XN(OV zrret`M&_8D_9g(^4bn5EGlR#Q%=NjQW&myLCjNtulmArD$~ zJi20G7mCpZ#5Xn;*o#MTtjh2Q#R}p7_10^H>S>?|U-ONIiK9eQEb$Hh@H#s>G(uul zGpL=fF~#BASF9e?XwBpA*H?_$Owcz}I`F^oYd#>xRKLSF!PLT`=R~Oke&JFtcnBTN106MZYiQ^srs6{jo-^XsKgvvXB#fy^3wvx}{hW};H zi2t)t+UJJ4c>sME07-c!qAp=z;%@U;Qq5^XIu|2rGLGYDL+3U282p92|^9ga6XE{hm*3{ENDkdI$co zT$1_Ua&Bz=I~x$Sjy;`thr(ny_40(EN`I`;$58#;vRtR@W{e1WaDDYpxe`(<`3L2k%mMk`767OU4YonC|Xc41F znUp$2nG9flH8wNpq`nvPhk$;s(B*I>Q{<(!y}(`*vmS9>cWquEOOyT*Fn8qmE9+eFS20#+lM z)T6a1HCG~B6p7(va<7^&ER$>nC{pa z&mjnKVT&x2=jc_%T!m=1-5T8A##c0$>ok~OkI48d$i}OJQ6{gEBdKxP{ZSn?8%TMy%Z)}B5TVmUUu1EdH!Y1Kq_ z^Bq@wmVF3dR1ln2Y~H+Ya=6#<)~ieod(DdB7$ zsaYzjAOGpm8tVXceC26b*c?C294zn;<3I326X=&~n4Wo*18-k#HOSMFF=_t%y6ZW3 zu+2{4=Nnq`hb(2?ajjDw@mZgYzQ&0H|FLe`ILONb zAl%=wa-)QPX#9`NtVznTFoH4T|4F)Q$voG%F9PTPQi=KRjx(6x?04~jI6WyN8sG>u z7Iu1C^&v^xbMVJ*lj~8Nl8~vUHUWpv0Bk6qi`!ER|8BCY89>!md9$$UhJX9gs^eC1 zFpbh|;Jy`)6OfMZQG>SM;e`wT%`L#3<0eQQmyCKRNTRHA&PA~caCNPDqj@d;*=tsM zcZPU&bVbKUhc(AE=lD%`--SB7ClAKWU4linTj6b}Fb?c@i6E+nl-Z%zSb8HuoEe8kOc*pDMXja^PK`N%FgGtaB?#(^s*5g5Hcfq(h z8s+XJ!e@J1g?;JmH&yq!WQ_UaaWv1u|GtUnEl4%;H2O?bj%^R%gtl1VeTG|y1!5zx zEvvsNp`|Ll#rxKqFsuM?mXlWRx`YEDgf!v5hs0x5^29eiFTTxotCexX|KYQ`;eXq# zbH&b`Bx4E1)G7x5;YQT*n+q;P>Y`>G5Q8%KNX$0H&;--)ZenBJGsJteZ+s@he}p`R@l5DoqNL*4rBCx4u6~P z2Gj1unB{)A4;txuRDoSN2j+$D=fw=sq<77>;(sUk;)ef>47P$iJ>9i4_!I58tzP)Q z2GnM^?NB%TBWSkexImo0JAb5;n_#PZ;l3vay&sl4)W}C$p ze|Q4&5nw{ny>2wbT7d}sZUjObw^4|c*NRHV7EvEg{nEVebK;~jCiGJJG!SG@oW{R9 zlj95pw>Cfe#JBSGc7pj|{B3;m!@qJWvwB-I6<5D_o%?O9Z z^(8c%7f;tWKjn2Z(fCEjW(*0DG02=_JDV+m$ogiH3pwY;hl8%g=}q^_`M0P`cT&Xu z!7DbA&s6O@l4GfD<`(4$3^R(FOkMjMcG?e8de@?@zqdT3Zv8m$G zHkR|yb93)amZQaSqMc49kE&@6Gq1bNF_Ko_O}G@(yg9Dm7*K(OQuTCeB63_h_6q~g z6SA3!BAaS67JlK&vb=e>$$w4XN>ZRRDi!?xIaa2YItT=}Skqp6_u?1fA9py-d;LLv z=`@lZR`IJ5MpoO6wDb6rop;!?1Fuy#lE^_i@=r!+?rX7eil~#tU(MjkD9`a@Ir5p~ z@!%3cAsrF5blYB)~kRpI$N8zXMywKK(W|Bn|Q>m2ONWqZAFCYtPSuU|5?Z~ z+m|2S^ncw~tDLf)(ub6~c-a##rQC*_&9&nJtJbA^e1I7xnH(&JC#Le)* zKglh2(HW~eZCW=y;^@EcVnee^RqKcOI8EbDRz=V-$U=cbO^*M- z4gZ}gyVC4e^XV~#bPo|Lj@da>yAPiS!=E2kK}LrQQ@WWVA6Cb7IGdr}q3*g@uAy!wu#gJ)+I50Q{O zL-~RzO$FC{ISqRF}?L!oSe@MGrf62=S{{s)7#EtoJ$N#YQHakCHKM>*RH&upl1!Q~b zCe0m(=!mLO#En?-UrE>WET?By(lpX{7MM2^ox!qGqr6VV9V+mz>)L*uvAdQ&jDN-K zOQO;mF@0wQ{aUZD$;X3D1NF1~N-x+M!6qAj;f0N1IwR_zUNKPfU@t=CTN_bkt z$kd8?HmW6bnT;`M+kD=2h_M`?jA$;3k`3&a&?r;Bp>VNzn{^0WE2X-cG@P2sl)cf^PF@Js|R`0jq zn6r=fxGF9`uL_{;U-l}7zj5MnT*V4n&XnXY>mMS+0h+~N#kiUqk!-6)(0loG3Ss!~W`rQj3UOl+1*E5uV`XBu3 z_=A7t|Bk<$XDI)9<1R9it~{w2Q&;>}43CY~$e+RdUnihZaJ5gkAD!2u?JIFKlCjIN z?zm(Y;#ikg%6Q~cOey1088FYv4SRQJy-WEULw(L+J}eGVYjYaMuN0JzS&Qq}H#&M6 zp_+$EWrG*@_%9n z#LL}Q$Z@UXHD?V&sFZ&=Mhd1haTC&r0 z6Q%Q=R)HGtfvu48s51c}-Q9svtf_84&l{Zs(0fcVF@xw9nxd)aXd2O;$~QOut+WaQ zeSRH$(yV~egqsB_&-<+3!{C{Lf++{$u$O{|Q9!U&RZ$ zy#y!x-|)||NHkm5RnDK@@xMu}5pnaHGV_oIR>xpsh*e!AKH>A{c*j}31?sd<#|n}N z%ld!E|3;^AH%j_||BN5G?)B~s|1(;lOtvP1vY#%(f=k-2Qvh7*e_YRkIunbi69bEI zT^F5H7@g!u^g3o54|8euZ#wLI!$0Jcz3`8~f1V7uOG@@E<0op3Q5bb)c}PwA|8~bq zdL^Rm$2mD2i|;t0imC#KyT@+>Xu4UKw%xL}?lS(PByYy3k#zi|Rog`T@6ajL5yaks zrlZnF;(uf%$@Xi{^4V!lC}oKFPX(2=BgDSpfMuESzxtXs#LJtJSnHJl+`)O2QRDB+ z<=3w>itGP=9PLBIar9rLs#6$oEiq~gjs^Zpy-{#5wyoWJmT0x0S$VuXJY?L~z~QG6 zkf7#i4Eg2f$AJq;0WPxKgc8L2ttl~Si$XmC*ju*I!B_P(^{aCJ3PLla)Hpbtxacb7 zUE`l>N5oQ_<<12B{5rWT|D0kL(n*PJG_-wc6fmVjg7Z7~QiJ*b{V(Ic{dfL4{_+3t z2XEI<0plde#&3Sa%&XKT(5Jl;?z0ud&5%=R#~BMl;~a5o&TTu*?;Uebl04P)N3$uM zHXWW(xze|;Z;Y+ge+B>jq0y+rr-T3FNPQy!YiNsEiHMDVV8vtAk-~2cx+XwUH{Z$pXXR~mV{8qc$!mWIy(If_C1*+3m|c$K>ARxb ziOQ>pJahm)!lLr4=J(mlVx8-<_-lu$IWnpF8#e}uaLi(F@H<%1lN~11Aa5tmi&@#c z9%^z}-=#E6_{VKWAAKvM;=@RA>mC}1`Hqae*x|J+h>5L}5temmJ~_=`?K6GZr{#5C zao_lk`81W@xci>NfMBx|b&C`6-#K^LTyJYWqxL=iGXaKJx|Gl5yz#BWT8~DVc_&eJ zPI*Qgjahj}L-rf~(_fs#>cmCppaP7FZoqQbNIUAbpm_P+^8G@1ehcDx)_19Xa>M2| z3B10I8@^spzDzQJ`oR&GD0URIZls6kvl%r-p>~y%0~7y!%o}w8zl3w_+BRCm;8;rx z?3znFv3zH*83?mS`}D{(pqiB_2$NZ-|!DatU+_g`yqLQd?9PO91QD{^@}wd6)8 zpk3&_q*$?Xf_iJtYnDzUmp&lJ>Aqg_Of$SEdsub9Q9^At9b1@0;D2l{KkH2F<}I)6 z#Q(|!LXDZke`t{Ayx||&D7@icLvQ@oedtu^WH94Vj&ZehQoxQIf#Xj6(~zmpL_cs2 z6C?&<9LPFFNNdd-|7rbUgNg(&7Hjo&_h!nF(f-f;bK^gCqr26hm!!aF{J*RJ7XL?m zK-VVI+G@gB#{YL#79k|KZ&tPA|4jkrv()A%cX6(bSd{X@xTo>PZ!V(4IXjF=XO=Jr z=WqDueHC>i@vq#Vlj^*vHdWeSGlrDM{wE!K;lBg_9r#cEPo^@Fp@GQ%#R@n4zj1Bg zp@UwU%X`Cr*uR#i-y(eYmH}J7c|l|r!5{Os$3*}IvZ<#aFF-^x=$wxq3rBOQy3b_x z=^}e+jO}unfWH2%z`w8&@xSo~#geaD>=M~0u4*fRpfBUUjrGi7a=ByJQhZxL?@qs_ zbN9i|CEBAZhoke)uMa=NZS)`yt@ZmfiOUV?T<3Ld`*M_03V%^eCJSvXv%;PTjxQ!e~ z`A8LIj6l|fMT7!8vtEOHB2DFWQsya4v~=7QR@{j{g-zk+{NJ(H)nNYHr@{Q+{O!Mv z|MAEF)xO|mhvQ@R-t11`=$I)%B%{(X10K0CwSE1k<4v1sY)Ze=E*r-`5Z~sZUw7qW zR$|D*54ueL=;fN==l{#^Pc!@sThfN|A@?GlO+G|@_MjPGI=_o2fw z{(*!D@_i7MGxxSb_47}DhM)YMzk&biU-`e)ce|nd{$htvp7Z**TAhQqQvW%xY+~?q z`0)Mkkn@+*jM4Q&KKGNjz~&>SALn#|ovyzk16IgFCfb$PPqNNi?s&#t&dJcYkKza|#HogK6eH#3tH&zQRkt_fFq(f}Fqo)PiYPbmfg$ z_eS0}_*XVN8HnRyPeUbUt}_9ETheutP(ZCXeRk8=TwGu?ecq}FZO4(1>3U+9Cj5$< z3jfB4@ZVbxDTnc2YUXHlRzj_1-exBL)eN6%N4kr6Sjr^mtJ>`DO)LfFD#TCZwc;WK zpU#kj$|0QKdHS#hQsUmQx(+Uj@?OAl`HCx|mvz-5H zl-1E-zQ>5=WG>l_|0xEJh+bK7y#pPK!7lXRzx6$mb44eyFtnW2Cq8j+Va?DR(3=3% zWne=i6pge9OoM~}=5arXmcEYYG!fVB+hLg+c7e$NvNl>$gijQ55&$dtaAjq}3>Mn}7Cgyi5=rs+*rY(5d@aS*pCy%Y~ZzMBfSDXTi zMtCjtm1V2b4CfqWa~3n0*IRElLRd(=x_C^>q#)_~WMh?1pVGEKi5MkziIeU38FNi zxDea{sL3=6Rh!|AaV>HN*$g8Y1_(R}%|dMfBIGU2Ilgl>n$OJ{S$GU({JOE4vwV|w zamKC&TMEnfn!n4^o^sKU*js!Z4Y_E}jmfj(n)4=e4dshyV8+0SBGSja6iO|9FVbMhTbLUEw)esPmM1v|ex5PN%z{ z#)btF{`E(o3e(bE`iq^;79vi1?N{~MPu13VWzQ@tN#Var}$6a#Yx*JT5a5xjr=D3?dc`{Lr?Rq}h zL}vqu0I1ff|Fsh8uqzd{RTS4)9=JKKWt4Hbl9pivwVx+0Me}(0q?cg3vC3;AF`9i{ z1UJ0nf9a16<9Ob$*OX?i@Uz#lo;5wOVt&>UjF>=Drdi~XA>NdjYJl0H;yJu$hWXBj zlc2c|FmDy}k*1q*sdL4sXN1o94`w76CpOda!aY#Dbo1rKK4U{INIE=9E9ia<@n zwp|!OFvC6k!O^Ljsbi>FiQG|Pn>U8^CPky*%(Q2mkbX=dZKK2_;pwWF?p1 z@ek$yXDJQWX;ztb1KD}+#bp&n2G)i^F8GE}K_bZ%qV_D1BQzzA8~-3Fi1Sz!SGO8h zValXmWWLDfJ;vH}-QZshhA;SkvPm#qr-tHrhk`x#CFSeH*KAyptl{Q?9qas;_!l1! z{-40DD=D6E%wqAQm@kx=kKXZLf&X{kopsjI=@kAfjhEjV|N8oD#)p4)Xw`JJNs-XOL|sLQ-bqmiV|~@_f3 zN3242G-kX|y6}Hw9T&(#F^v2r|4~ABUGofj-1wg~>G;ee@!#Fv%cxCMY%tgfzK;J+ z}M+!Svvz1n}BZ_wvE z#ks}*oD%NaO<)Px&ozOfv<*P~lO$u&G9Y8$dG}@W)Q|D60CdCu#^1=$+wV(~oyS?Z zF;{69^~Aq80dKDr|7SC8rMUMQ5%_Q6-%Hv0@iksQpOt@}IX>$wFO`<1 zZ_$e%#dyAq${KlwU_x2$=N{G-ix)|L&`MA;*lO`wPx13h33jKmR)+^mKRyXH!@R8P z=c9noR0aJXDeE0I*x;Qcgw3|X+o^kHf7DE`5u#C7luf6(>yYmB-$hE~%+$$@HNod- z-56(FqYa^~nB2G#K=q&oRT1^p-nJ;Fw1AH8ohpQa`}g`24&2T93&1(rDHR zW**0zljDJKR!?w3wEfDl(nU@UXC4NwcR}cPI+SpHTRz9PTKGj}lkG4CnWt_;pV21p z)yT{-V~7q88dpDmP$f7<_?O=nysFNx%wi@q5|A!d`gYoISSy}j9wCr(`qi>e-%dY^ z9u|D-OB4Bz`X_(qZ`2?Bzy7cFI;s3mbwc^O0E$x+9i3`#Zg^(tu~y-NX&RJ@n=?k; zH=*SDT{XPo>bo-ZImRevD~Lo&1o=ZL`i2)>bjDC})$fzkF!XqhUWnW@<4GXEakP;; z6apQvH!geV|LEv+d5w+AME%5R#Tk5ZD>s>k5N6^C;${3JY>*h=O=W)01ZP4-GAI=T38=Bq>!0}+Lgywq-k7z-P4bWG z-g{Gxdwp}uDN4;VUNd}EA}i=Qzsi}8l;a3^t19{T6WCRZ8Z0^-1fS@29%*v^5GASZ zV45o+o~@YTKW8TI&Bvl`H#b7B8HIoTPW7h)**Uss$AS6{|CJ@Me2j0v)6UXn24`Qg zD{pJrBAfIj6I_yT6F#FT74#MSGoWdHY0L7`y-G0*Npq@2XYT$`^Exou#9K9UBjd9nS6h}CSnt+$8-R8RFIM1h{lH#Uo zEfYt&lQnXlQ@~MQgX4)Ik$`y0ny)2?sPFif*M(|OSh`_9PwxFH(oU`+aSfVn$*`>x zv*c0zOt+_!IkXxKl&AAFTP>bN=yZV5RPgz%5T4S~;YfI1Q~0NK;LDbQGQkyZDT(e6 zpM`Fa8Z+arwG6_V?d0nR_T4G;EYo_kHW9^D-5Wt%lZ(PeKr$Q*GbS}ea+F$2O(ps` zZDjw8wQR3h}5(n|U8>X^!+15w-#(&sg5~rihR<}q-pd$255YD;quN+V*3*pa(HLWA1 zb}EcH_Fehi+k7ym9Y(xy!*1m5mu`#gq?UbojoO?uT9-AN=8s0?9sklEZQ#l0dg_9K zH&iqDms$e<_(0BDwAVoVSBMta<-c;an0n@qp5eHX@2|-ZZul?DTgP!Kp#C$cqX+p4fMt;pgBVqR*oTzRSI`?j34kJ?~=1C1uraw{OLZx=wFX zJba?r^>3B2*yoSBLii`zD)4`Nh~E$;t;t`0NYEAekHyQXpHEv7%_j+u{ znFCDQYZVb-!d|JwuB{aPY{05`r%|2UT%%iUI(b}bF#-mWuDVpD!l5% zpBi-1`+(!zqr{hMLD=Hfq;XoMi=bZ8qb^`sSUe3o8It9i z_+QjPJ+pNzJ(9zl{GLyY;wkY7jAc$+E??d^&CLS(0A)3F&iZi{5en!TB%LEnZ!$W+3 z3YL?g!?slXuc)Zl9`SGZi2wN13_e%yBDPZpHF}^QoVhz;(%}O~a!rsmViZe>X9obV z&x1m=AY!e}lZaIY?2?^9Hu+iQeKj-Hw+e+-MdH6F=$4wM6yvf@E20*-iybNiiLe9z za^j?KbKunAO*l{~qrO=$(%yRqc6>Q9VW}W(NL#$FyZ+eMHg^iw)L>)lth+M?-oyyG zkxiv}r(*O$=0dOirV;Oq4!eUhkp`zgXGS`9b4~KxGvy8cN0R3vpTWYoq<(I`fb8VA z{U^fz0_*vtU|tmkfO$b3Xm0TKyg80gQcoGx1$nWQ{0aZMs-_uzQ}`YKSolZo9>7_g zqZof|AYcQKz4}bj5KcQ*GnaVNDrBD1CToVkzc*GA z|INryh2YN;y?9ik7VB2t(AFu%DXe=@R&W z|62GT^bh`L!nBs z4yrY@rU{RumZrFut}7yxCC4;mKj8n(M&S>K)Do|uOJI2km|OR0=F%ww{~S1D#{h*Y z3yaqNmlt_l6Eh%VxEc-$D8gzv@{0ck?AxIM+%ZHSbDf@Eh;Kr@TzB_m_{tVu700tn z`Aw&F?0kpGEr&(ZIHMO8antEx#djS`x=vklMcw&1pJjL&Ykc#1<2kb9@YDp1DGl@; z&@-iylSqzx9nGtbwTv=5*i`{No!uZ9>3l6?c--h2EJKIRuLPG)z|5`^T*Sw z0{?6l5tPg8@)ZIlH;p%=wXAdVG!!n_T_@}G4PK6<&qo2JW|5mB9PHBUW12+WI!N9X zO{|GyApW0!^0WSj|It6?BQL(wFVzKOtBD3G;PM!!4lP{2@XL-SDmSL*YxT6-&`1Zb zED^+BpwEs^($hQAn}+*)^6?279F4Bae5ax_=4qHL{I`^hij%P&;T{o+p_9M-=7i%I6cVkUGs@tf>n7pHsZ*z`W1e6* zI)iLO+|LD*LQ-yq>x2L4{P3Wfbm>Hm?XHcyf(6?NL9)!VVYTtV|PC2xe!u|YrIh3;pZpNc6GzQn@Ax3H>*qP(s=!DL&g6&;NiT({XYtmgj}&Sti1-% z8x@{1&{&lnqcj(ag?|M9wD|$dhaBun`~|6A*<-5@V6NXnS!Y9}zr{sw$HSFO0sWe=C@*6&~EMwU(1j zW6pv|WUd={HL`JQ`tW)|l(zvQF09v+3r`l)Zh}wRg2{9t0{n8#gZD6zm#o2Pre17c z*Ba#A!`Ra)=#A=Ikf6~$ocx(8n~eWBI2-fFG{uJgpZV)w_&@(k_~-u0{}%uG|LShM8QI`)Qv4Bh>lQnz8n6Zl!g#;LuwNd=^04=t&->5it`qN-C8PCC&26@l2xI}i4WINRZs!>!{Z_Dd#w zD%jr0OGVFp;+_Pl1sKC=C%aTrPk|F62iY?O>80oN?_h(k#3pf zK!x1&kD6I4HK?98H(yr09a+n0HQXYq&-n z%}hVw`}DKS=VoWuy?y(%s7ZQ;idZGZW}=eHu5{2OmF>#Q-gq%KBn{KJ|!SJ9@adX-RbrBqBinNuD77TQ`L)E zgVDI|>)kK`moL?qYBDwvsFRSn0I7|*3Hu8FVBAFFf3BM$PW(Gf#VNAQhq>6fsVTN~ zta}jn&tjduJlwk|f&V581}qv10}FzJ z1HXn>4k!FCwY8flm^C%I2e-6@vd-M8ScvrJq-P5@@(VXK$IamNuO?gIzr(iL0u(a< zi|4)Tx=_3F*}?yjzoVGP9sjLFl+9>V+&7b7_&<-S;Jib&M=Q5Frf$ypi|}8SODpWO zH}N;)EMtY7boxw=8DXrOS$E>Ux;_M+v&P|!8~!W9`VIdlObY*IK;pS(OFlW<>!bq0 z)ay0i<9MN`6z6*UKrj%7`dlPf@JhR_6pw^C)Oy~M2*RryJndN2p=9aaeoNdt|L?t= zxoo1~+3*zpQ3!f5{&yS#=x1#y#}9@7`z@*HT8dRC=}~I5du`~zzc92G^p5|2pK)Z= z0@mlXMf_j4S8}T( z`0>T`-(l~9ja-2nHu^PIgp}**Z^kLe_A@LK-zS3rP%cc=bUdSuEU#;>Q?Jp@j%F=w z*UIxrD%2=>nbpBL-GZGAOjDBrQxm6w>mMOmhpOnK$yU_qwSKRsw)v>(e)9}-$K+o@ z&NFP*2l2s~>dE;W_x9XMSY$fJc)9$_8?02V{l1=pj(Zf|K3CxcyBv?k%)Y}#svkNq ze@3tW)t9F7|Kb1f|HQxWfBKj3pZ)*;wQqHU`B#7Quk{apxEst-f->V?PBIzg`H#9k z^lx$6J&ipt*=_9lD4l*kmh<76VI`#+4@9GoosQ>IGG33Gd2allTlI%I(7hXuh-OCX zbZRT8o%emM@ZTb}5)}apJJ+uc7=E)i{)Hh{0I$LSN{@5RC+ub@Vj z>CmHMjgyMVX&!;wCJ8;uIqQMtiIMsS0gQjn3$HettKgooHo=5{LHH%sBmejzIVz%h zWR>AV?w;Ts|HOTbY;WPedHqPH|AHxItV6HT1tni7v2=;^-k91O3r9SzuCuvQrrJZ@ z#K}M}H`{<);&J@AL+-X*)ob2f>yV{Pi&rDL6 z6iPaXfBQ}xWU&s)G;%4-$IN;#`D}F-d)WkoGsUALtSeDLTi7DDI~(Hf_;&!aiVLna zoBD8Mv)c_XHC2qe{_mW5?w=6aI`T4PjR}F`TotRD6jsg2|67jQ5^VZSv9Lno|J=d# z7tfs`?F0MzJ=H_;fIo^fku7qKtesl_vT0iJU1JzG)SH!dt_q z3%88W0FFZS^MVHdo?o31=4bZGH^7fVA%%&3c2kw=sBFI> zn_R-)2mCKx6&C*0r={)WWbNyjFOCHaca1Tzd&u?p(Noe?FHjQy^HT$AN+~fuBEdE@ z{%>a3_OCq?8M4y&>y+HaKNPySoOhe=cd6%~82#Ewoch#Msrj*dhmZyk%{pCLb6;U? zPePFD{N?miHTyx!5@GmEjm4-}tDCr&l;Y0d@nEn5#@%g-S zMhBK}_&06^S>JoZ{|qobNWZ<~KLTToS9&wBR#FG#L(EUp~F7aB>NUZgm;z6H>;|x+E=LeGX2mC7^$we_9j_iqlC~dC~ zbFv72Y8(w*ZyJSS9V(rw)Yz@Pl62u#abd85*-G5dOChyf$JZtOv_We8_mr&tdK88h zGZpKV%QNXKhYhZyuageT0?o{~=Mw+!#?;v6GW5-O2d-La#xW3-<`<(cRg*tDz2Qf# zW7thEOOVW`nxp zenhSjdiUq2(qogp+}NQ@#3*q5#o~rC&xiBB^U9y)>(yZXtKa?x^La$ZZ+vMm|Jtv! zvkGq)0L+e>eg+b}8x-es@`|-6%Fkwz97{kO7-rjv-CC!}BjE_hO%m|Bb|zq%+2LdORe?EiRycX6 zC?}3o2z3_s84{A~uSXHUO|Z=Z)2}!{V}rC0ASe2CYDL=V!FzQn4(YUSOMi~xc&oxQ zg?T=W|6^h|*qt-lcRFmS#O_UJEhl3P^Jsk^FmQn+2D9KRflo0EJxbnjhC3(DDv9}x)+mq~gd zn#;g4`n?Ux<0p2x%9=hcXi+6zkKfCzn{^JLEyTg)?V+~#FqC5V#qFAIKM?Ka? z-(o24BKI5qp$s8FxU8dST>=ucd#RJTC0GFz{OVw_8Hxq~l!s*E&aNCmjcW0|z`6G1$ zs75`11Q&8U-j^$oS5FVZ(xw$Tg^FoV@dv{+R`;7~dO>A|uC?(G&io$#-%P-1$cLz` za$J~~9q-&H>u&sc(6Fj^9TNY?Sx$UjdYRaf&E4ZuBCkOt{Y6k6}C4Oq?RLK$b32g>k zZzi`g@D(yDrXn(M>53qFy-HWzoDzXq6`@}~{)Xl|1n8n+--=0 zcQQqf(%E4>q+fL=UUs?^>jc=JZhE9`X+y&UNpXc9<}Tp zQjX@_N&0ewps0KG8~%J>-IZ~W&FI-nV5RZn3ns0A(M{9ptaWp>w7A3mmaK zn!(I%#%`qy+24(9 zW_SjoV|IR9;!HN_L+g19RK6Ks-U#+`w{Yebw zKk}!&)>_3Cl>1OFUuXQwWo5hYsk#3&%9ZOXLrKHC09DdII-kzh(dp2|k38y{dRHQ8zE&Q z+W9{dciV$`e$sQ3FNMkDghLxg0M}=sB|Lamw3Ds0RN7h-3a> zkluV4%T>cV40=o0J7wdK3;&H!-+E;Xw(0?Gkf=AcEjrHB8M2%y#4>t{QW=1stNHVw zO6GQ0!|q}nkyM*g6mBpuY<e;8k1-MAU1$_N4sa z-rWcMg8)z89dVA2(^hV#cJfr4ov?C+R@6E_&a<*RW>G*omU#+!}ly&l{l3$c~ z>xO^hVlFdYdhIOACTd^}6B++FuDPzKzJO@*NY=1HC1bjQ^&0jm5iD==v6mQ}K~tO0 zYWX<*JE(ljK@*X15z1dqpZI4_N}yg1e3bE9;+!>Kz6cFDVJH3*?8uZ(3#pBx&{Gos z=IbnTSI_LNZ@BP}?6c94YBxDhZ@Do)7|bylk3@H20;cj9BS)dFj0;RmI)pp;M+g3C zdlPBJ-W11o^rHqV;QtB#R(-5Uzj#h5eB-~O5uW)Wffjh})67RuFQ;B{@{Bnb&~pPP zXK?d_^6Whh)5nSB17|!jKZKO`pN$>5#>W3_1Esv}YdFS{x3wW*^K2s-{}uRG+-#Z0 zzTWBoh&?B+JcpXUS5QR}j)M!~AJA80u9i$+BFE=@Z=psd1J8Zh1!PU4s z1QLOj4cgfNIGDZ_4;8o1&!q~4$DG0%O=W`|E1hsuB`I*(r?|j$f{VNPf_V9}2J?S1kI4AaWd6ag{iwvVbQFDCDZd$C=l)M<0J}g$ zzauu`XRXaNkwLZ09$LxVTL$>W_7CU%(SSLN?k`Q`AOGIp#6SE8zx%CyhVox%Lz#0^ z-$4nz8_a6-GeKjZjX-z)QQ)_SMY05#qI5~SDJB-==i*%vV)RT*)ODTkhf_v6O1c`ap>?tFUmy5{`h-~!{9PTNj4J8SOHQ|NT?FK;gi-~=NR zB;U&=u*gb;%?KUyk4-(kIcNR_6n^Lrih()Kyf@h&;Gt~_Vb#hMBj%9vLJWh~DKDI7JaD^5`-1A>ICe8&s zq|wR=SdAO6EBBmU6y@15cH=+m@isn|JnRRKXB<-&datL&&u7lk$DUXHjah#PfUIw8 zWya>p>$&5q?;v=JbcCrPuk%bvD?mOw_2uIFNf6wu(z>d`Zt`2|2DDe&fVk|yqzPl; z|E!(7_KyGH-|KuzV|s$bcnz|-tgaU7VuEfv8I09C)?RZTN;YUSiY**L~@^jbAoXWcl>iCL=C*$ z9Y4I0F_%@lWhX`jOA(J)+LX}8~*z|i{VjqYnqw{!zsh0 zYnXTZ2MxX3FYsSq!9P8`0{@7Z+exdGXksP5(IDWTe~97GM&|$1xh=#dWhQq`uD34S zD9yLGUox_!1Kc-RDZcU>>X+YCxHb$2;qpzphwx8-n?I`UL@@c~f^a^n?|c%?>I$2M z9yk86@E7B~XW`g2j3@}eO{?$~idc!}K zu0{d|@0Qq8m8mvHN#+_h`{vYwY5!WzLD}js605dejoc%>yg2m-D=oTAFBzVQQ;%Fi zcQmv`bjJsMWJ(HXsbDk~pO1Ps`(2k3Q64%zoS))&5&?c@nl%(TI`SKhE6%}j8lS!y zUVnxzIjRR36OLVuR1-&T9s4z3!3|~WU1M+uCw!OFAEitdt>pOCS`D!k|n#@;&`B;gzJG!67Z{Q5{&l4KL|K*23Bro#cUQ%>)y5?W*%AK(sk@#XB zWq<1k`2HCt%;BPhni@Jav5R6v4mbtM zfEz80E|ZH`|Gc!At8lN_TOp_EGKKc*k2K9QI~9v+ZIWTdE_b2qJ5XGU%BJ~5g&e2ge8Ah(@a8CG}b2g*2dL942ejb5c z+m#}ocOnB3NWCC2DDsU^9DB4C&noSU?IR$ zj|$W64NusZhcKi!`rX7u$P>g5)PifPkO}9n=B68uM`i9nHSyDSnngPfe?9G$+PST1 zAHF7eHF=*Yw{gLk%D2}`6wS2XI|)UijEbhBQFsmwu-vY5*2+mb%5CJh@h7U%*EDq82l1fl35HpKo3J*S09PIli_r}HyfZ!pK9U!uM!~f9~H>(#m z9s2E$2tS4l6zeh

  • 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%0AX{Nb_ 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